diff options
| author | Dana Jansens <danakj@orodu.net> | 2008-02-02 22:17:32 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2008-02-02 22:17:32 -0500 |
| commit | a19f2f8bc9964b89a500a2c5aac0b8d3a3dc2ff4 (patch) | |
| tree | 80981bf45bbdb6513c0698e4a46b58dc21ea4c1e /openbox/stacking.c | |
| parent | 751f85003f080d79baa2d4b3b989b12a0ee9d469 (diff) | |
when focusing or raising a window which is modal child for a direct parent, raise its parent and move it to the top of the stacking order too, ie. treat them like one window (this is already done elsewhere, like when moving between desktops for example)
Diffstat (limited to 'openbox/stacking.c')
| -rw-r--r-- | openbox/stacking.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/openbox/stacking.c b/openbox/stacking.c index 92a5285d..4c24e3e8 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); |
