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/focus.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/focus.c')
| -rw-r--r-- | openbox/focus.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/openbox/focus.c b/openbox/focus.c index a4eb2cfa..c2d7e11e 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); } |
