JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Fix focus when switching to an inactive workspace with a new window.
authorReginald Kennedy <rk@rejii.com>
Tue, 26 Mar 2013 01:55:40 +0000 (09:55 +0800)
committerReginald Kennedy <rk@rejii.com>
Tue, 26 Mar 2013 07:53:11 +0000 (15:53 +0800)
spectrwm.c

index 960c0eb..1e20562 100644 (file)
@@ -3465,8 +3465,9 @@ switchws(struct swm_region *r, union arg *args)
        this_r->ws = new_ws;
        new_ws->r = this_r;
 
-       /* Set focus_pending before stacking. */
-       if (focus_mode != SWM_FOCUS_FOLLOW)
+       /* Set focus_pending before stacking, if needed. */
+       if (focus_mode != SWM_FOCUS_FOLLOW && (!new_ws->focus_pending ||
+           validate_win(new_ws->focus_pending)))
                new_ws->focus_pending = get_region_focus(new_ws->r);
 
        stack();