summaryrefslogtreecommitdiff
path: root/openbox/focus.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-02-07 02:06:42 -0500
committerDana Jansens <danakj@orodu.net>2008-02-07 02:06:42 -0500
commit5f04ca85ef6a2ebc2d66842e261a676691e9b4de (patch)
tree5d28851a47a36a7130426644573f0fe1b1a6b5e8 /openbox/focus.c
parent4435c3a438f092252f563d5fd97dffd440a164db (diff)
parent307befd333dd89a990e541c37c8c3717e125dcdf (diff)
Merge branch 'backport' into work
Conflicts: openbox/config.c
Diffstat (limited to 'openbox/focus.c')
-rw-r--r--openbox/focus.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index 68b0b7f9..cff81bfb 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -57,6 +57,14 @@ void focus_shutdown(gboolean reconfig)
static void push_to_top(ObClient *client)
{
+ ObClient *p;
+
+ /* 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)))
+ push_to_top(p);
+
focus_order = g_list_remove(focus_order, client);
focus_order = g_list_prepend(focus_order, client);
}