summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Screen.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/Screen.cc b/src/Screen.cc
index 1c9c347b..5c1134ff 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -1264,13 +1264,18 @@ void BScreen::changeWorkspaceID(unsigned int id) {
XQueryPointer(blackbox->getXDisplay(), getRootWindow(), &r, &c,
&rx, &ry, &x, &y, &m) &&
c != None) {
- if ( (win = blackbox->searchWindow(c)) )
+ if ( (win = blackbox->searchWindow(c)) ) {
f = win->setInputFocus();
+ blackbox->setFocusedWindow(win);
+ }
}
- // If that fails, and we're doing focus_last, try to focus the last window.
- if (! f && resource.focus_last && current_workspace->getLastFocusedWindow())
- f = current_workspace->getLastFocusedWindow()->setInputFocus();
+ // If that fails, and we're doing focus_last, try to focus the last window.
+ if (! f && resource.focus_last &&
+ (win = current_workspace->getLastFocusedWindow())) {
+ f = win->setInputFocus();
+ blackbox->setFocusedWindow(win);
+ }
// If that fails, then set focus to nothing.
if (! f) blackbox->setFocusedWindow((BlackboxWindow *) 0);