]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
don't crash when a window adds itself to the focus order while cycling
[chaz/openbox] / openbox / event.c
index 231b09e663a8cfc010e1a8b27fcc0d99b80cf49e..cb739339e6d8b961bb9c653b1e90f3e4f17626d7 100644 (file)
@@ -539,13 +539,6 @@ static void event_process(const XEvent *ec, gpointer data)
         gboolean nomove = FALSE;
         XEvent ce;
 
-        if (client) {
-            frame_adjust_focus(client->frame, FALSE);
-            /* focus_set_client(NULL) has already been called in this
-               section or by focus_fallback */
-            client_calc_layer(client);
-        }
-
         /* Look for the followup FocusIn */
         if (!XCheckIfEvent(ob_display, &ce, event_look_for_focusin, NULL)) {
             /* There is no FocusIn, this means focus went to a window that
@@ -581,6 +574,13 @@ static void event_process(const XEvent *ec, gpointer data)
                 focus_fallback(TRUE);
             }
         }
+
+        if (client && client != focus_client) {
+            frame_adjust_focus(client->frame, FALSE);
+            /* focus_set_client(NULL) has already been called in this
+               section or by focus_fallback */
+            client_calc_layer(client);
+        }
     } else if (timewinclients)
         event_handle_user_time_window_clients(timewinclients, e);
     else if (client)
This page took 0.020917 seconds and 4 git commands to generate.