diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/FocusControl.cc | 3 | ||||
-rw-r--r-- | src/FocusControl.hh | 2 | ||||
-rw-r--r-- | src/fluxbox.cc | 4 |
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; } | ||
105 | private: | 107 | private: |
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(); |