summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/FocusControl.cc3
-rw-r--r--src/FocusControl.hh2
-rw-r--r--src/fluxbox.cc4
3 files changed, 5 insertions, 4 deletions
diff --git a/src/FocusControl.cc b/src/FocusControl.cc
index f469521..664d41d 100644
--- a/src/FocusControl.cc
+++ b/src/FocusControl.cc
@@ -480,8 +480,7 @@ void FocusControl::setFocusedWindow(WinClient *client) {
480 if (s_focused_window != 0 && 480 if (s_focused_window != 0 &&
481 Fluxbox::instance()->validateClient(s_focused_window)) { 481 Fluxbox::instance()->validateClient(s_focused_window)) {
482 482
483 if (!client || 483 if (!client && s_focused_fbwindow)
484 s_focused_fbwindow && client->fbwindow() != s_focused_fbwindow)
485 s_focused_fbwindow->setFocusFlag(false); 484 s_focused_fbwindow->setFocusFlag(false);
486 485
487 } else { 486 } else {
diff --git a/src/FocusControl.hh b/src/FocusControl.hh
index 6a868a6..7fcfb2d 100644
--- a/src/FocusControl.hh
+++ b/src/FocusControl.hh
@@ -101,7 +101,9 @@ public:
101 // like revertFocus, but specifically related to this window (transients etc) 101 // like revertFocus, but specifically related to this window (transients etc)
102 static void unfocusWindow(WinClient &client, bool full_revert = true, bool unfocus_frame = false); 102 static void unfocusWindow(WinClient &client, bool full_revert = true, bool unfocus_frame = false);
103 static void setFocusedWindow(WinClient *focus_to); 103 static void setFocusedWindow(WinClient *focus_to);
104 static void setFocusedFbWindow(FluxboxWindow *focus_to) { s_focused_fbwindow = focus_to; }
104 static WinClient *focusedWindow() { return s_focused_window; } 105 static WinClient *focusedWindow() { return s_focused_window; }
106 static FluxboxWindow *focusedFbWindow() { return s_focused_fbwindow; }
105private: 107private:
106 108
107 BScreen &m_screen; 109 BScreen &m_screen;
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index 3d9cc58..dd1c391 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -1227,8 +1227,8 @@ void Fluxbox::update(FbTk::Subject *changedsub) {
1227 // make sure each workspace get this 1227 // make sure each workspace get this
1228 BScreen &scr = win.screen(); 1228 BScreen &scr = win.screen();
1229 scr.removeWindow(&win); 1229 scr.removeWindow(&win);
1230 if (FocusControl::focusedWindow() == &win.winClient()) 1230 if (FocusControl::focusedFbWindow() == &win)
1231 FocusControl::setFocusedWindow(0); 1231 FocusControl::setFocusedFbWindow(0);
1232 1232
1233 } else if ((&(win.workspaceSig())) == changedsub) { // workspace signal 1233 } else if ((&(win.workspaceSig())) == changedsub) { // workspace signal
1234 for (AtomHandlerContainerIt it= m_atomhandler.begin(); 1234 for (AtomHandlerContainerIt it= m_atomhandler.begin();