- /* unmap old windows */
- if (unmap_old)
- TAILQ_FOREACH(win, &old_ws->winlist, entry)
- unmap_window(win);
-
- /* make sure bar gets updated if ws is empty */
- if (!new_ws->focus)
+ if (new_ws->focus) {
+ /* if workspaces were swapped, then don't wait to set focus */
+ if (old_ws->r)
+ focus_win(new_ws->focus);
+ } else {
+ /* make sure bar gets updated if ws is empty */