When a window is the focus target and it is removed from the focus order, reset the...
authorDana Jansens <danakj@orodu.net>
Mon, 1 Oct 2012 03:42:16 +0000 (23:42 -0400)
committerDana Jansens <danakj@orodu.net>
Sun, 7 Oct 2012 02:30:02 +0000 (22:30 -0400)
We were only doing this if a dialog was showing. But if it's the target, then
a dialog is not relevant, we should always recompute the focus cycling. This
avoids a crash when not using a dialog and closing a window during cycling.

openbox/focus_cycle.c

index 6d4cc2a..93a9a99 100644 (file)
@@ -74,7 +74,7 @@ void focus_cycle_addremove(ObClient *c, gboolean redraw)
         gboolean v, s;
 
         v = focus_cycle_valid(c);
-        s = focus_cycle_popup_is_showing(c);
+        s = focus_cycle_popup_is_showing(c) || c == focus_cycle_target;
 
         if (v != s)
             focus_cycle_reorder();