]> Dogcows Code - chaz/openbox/blobdiff - openbox/focus.c
Merge branch 'backport' into work
[chaz/openbox] / openbox / focus.c
index 68b0b7f90ecba6f07061939b4c847fef99b4b3ce..7c15891a60e416d39910c0706c8498a9c911b9ff 100644 (file)
@@ -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);
 }
@@ -188,13 +196,6 @@ void focus_nothing(void)
     /* nothing is focused, update the colormap and _the root property_ */
     focus_set_client(NULL);
 
-    /* if there is a grab going on, then we need to cancel it. if we move
-       focus during the grab, applications will get NotifyWhileGrabbed events
-       and ignore them !
-
-       actions should not rely on being able to move focus during an
-       interactive grab.
-    */
     event_cancel_all_key_grabs();
 
     /* when nothing will be focused, send focus to the backup target */
This page took 0.022706 seconds and 4 git commands to generate.