summaryrefslogtreecommitdiff
path: root/openbox/stacking.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/stacking.c
parent4435c3a438f092252f563d5fd97dffd440a164db (diff)
parent307befd333dd89a990e541c37c8c3717e125dcdf (diff)
Merge branch 'backport' into work
Conflicts: openbox/config.c
Diffstat (limited to 'openbox/stacking.c')
-rw-r--r--openbox/stacking.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/openbox/stacking.c b/openbox/stacking.c
index 03a62dd4..3c05df49 100644
--- a/openbox/stacking.c
+++ b/openbox/stacking.c
@@ -221,6 +221,15 @@ static void restack_windows(ObClient *selected, gboolean raise)
GList *modals = NULL;
GList *trans = NULL;
+ if (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)))
+ selected = p;
+ }
+
/* remove first so we can't run into ourself */
it = g_list_find(stacking_list, selected);
g_assert(it);