]> code.delx.au - spectrwm/commitdiff
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 960c0eba3bc415a246c9f87c9177c9632119c6a2..1e205629f17ef33e09bc5ebed37c7e7abacfa722 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();