From: Dana Jansens Date: Tue, 22 Dec 2009 16:38:11 +0000 (-0500) Subject: transients are always kept in the same layer X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=33f5f67d7c3560319dd3e044d22360c725a10bd1;p=dana%2Fopenbox.git transients are always kept in the same layer --- diff --git a/openbox/focus.c b/openbox/focus.c index 94af9846..ed007a03 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -61,9 +61,10 @@ static void push_to_top(ObClient *client) /* if it is modal for a single window, then put that window at the top of the focus order first, so it will be right after ours. the same is - done with stacking */ - if (client->modal && (p = client_direct_parent(client)) && - p->layer == client->layer) + done with stacking + (transients are always in the same layer) + */ + if (client->modal && (p = client_direct_parent(client))) push_to_top(p); focus_order = g_list_remove(focus_order, client); diff --git a/openbox/stacking.c b/openbox/stacking.c index 44ccf9df..9f7914a6 100644 --- a/openbox/stacking.c +++ b/openbox/stacking.c @@ -302,9 +302,10 @@ static void get_restack_order(ObClient *selected, gboolean raise, ObClient *p; /* if a window is modal for another single window, then raise it to the - top too, the same is done with the focus order */ - while (selected->modal && (p = client_direct_parent(selected)) && - p->layer == selected->layer) + top too, the same is done with the focus order + (transients are always in the same layer) + */ + while (selected->modal && (p = client_direct_parent(selected))) selected = p; }