X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Ffocus.c;h=c82c4f62f8bea69a575c5d483343e0a169a8fb71;hb=12653a4153bccd5d9a46998753e7a1bc17479505;hp=a0e9c6662f205e402be3853a49f51520deec4d9a;hpb=d3a01a40f35cb3ae6c5ad8329291e86e2e599691;p=chaz%2Fopenbox diff --git a/openbox/focus.c b/openbox/focus.c index a0e9c666..c82c4f62 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -98,6 +98,9 @@ void focus_set_client(ObClient *client) PROP_SET32(RootWindow(ob_display, ob_screen), net_active_window, window, active); } + + /* make sure the focus cycle popup shows things in the right order */ + focus_cycle_reorder(); } static ObClient* focus_fallback_target(gboolean allow_refocus, @@ -206,16 +209,14 @@ void focus_order_add_new(ObClient *c) focus_order = g_list_insert(focus_order, c, 1); } - /* in the middle of cycling..? kill it. */ - focus_cycle_stop(c); + focus_cycle_add(c); } void focus_order_remove(ObClient *c) { focus_order = g_list_remove(focus_order, c); - /* in the middle of cycling..? kill it. */ - focus_cycle_stop(c); + focus_cycle_remove(c); } void focus_order_to_top(ObClient *c) @@ -293,6 +294,9 @@ gboolean focus_valid_target(ObClient *ft, { gboolean ok = FALSE; + /* see if the window is still managed or is going away */ + if (!ft->managed) return FALSE; + /* it's on this desktop unless you want all desktops. do this check first because it will usually filter out the most