]> Dogcows Code - chaz/openbox/commitdiff
make it possible to iconify a modal window when its parent is the only window left...
authorDana Jansens <danakj@orodu.net>
Wed, 30 May 2007 20:53:00 +0000 (20:53 +0000)
committerDana Jansens <danakj@orodu.net>
Wed, 30 May 2007 20:53:00 +0000 (20:53 +0000)
when focus falls off of a window, don't allow focus to go back to that same target - when a window is iconified is the case.

what focus_fallback_target, to check whe allow_refocus is false, check where focus will actually be sent

openbox/event.c
openbox/focus.c

index f5da603b0b9989f19bc1bd3a68a7159ebc7614bb..37910684ad1c5d0ea936d7b0d2000b555ad07f86 100644 (file)
@@ -531,7 +531,7 @@ static void event_process(const XEvent *ec, gpointer data)
                 */
 
                 if (!focus_left_screen)
-                    focus_fallback(TRUE, FALSE);
+                    focus_fallback(FALSE, FALSE);
             }
         }
         else if (!client)
index d60f5ac8d5a2e5be2921a41da74b24c71dc33be1..93058d555fe7bcf0f4b73eaa510522e86ffffb19 100644 (file)
@@ -105,7 +105,7 @@ static ObClient* focus_fallback_target(gboolean allow_refocus,
     ob_debug_type(OB_DEBUG_FOCUS, "trying pointer stuff\n");
     if (allow_pointer && config_focus_follow)
         if ((c = client_under_pointer()) &&
-            (allow_refocus || c != old) &&
+            (allow_refocus || client_focus_target(c) != old) &&
             (client_normal(c) &&
              client_focus(c)))
         {
@@ -125,7 +125,7 @@ static ObClient* focus_fallback_target(gboolean allow_refocus,
         */
         if (c->desktop == screen_desktop &&
             client_normal(c) &&
-            (allow_refocus || c != old) &&
+            (allow_refocus || client_focus_target(c) != old) &&
             client_focus(c))
         {
             ob_debug_type(OB_DEBUG_FOCUS, "found in focus order\n");
@@ -144,7 +144,7 @@ static ObClient* focus_fallback_target(gboolean allow_refocus,
            backup fallback though)
         */
         if (c->type == OB_CLIENT_TYPE_DESKTOP &&
-            (allow_refocus || c != old) &&
+            (allow_refocus || client_focus_target(c) != old) &&
             client_focus(c))
         {
             ob_debug_type(OB_DEBUG_FOCUS, "found a desktop window\n");
This page took 0.030653 seconds and 4 git commands to generate.