Fixing my own code
markt markt
3 files changed,
5 insertions(+),
4 deletions(-)
M
src/FocusControl.cc
→
src/FocusControl.cc
@@ -480,8 +480,7 @@ // check if s_focused_window is valid
if (s_focused_window != 0 && Fluxbox::instance()->validateClient(s_focused_window)) { - if (!client || - s_focused_fbwindow && client->fbwindow() != s_focused_fbwindow) + if (!client && s_focused_fbwindow) s_focused_fbwindow->setFocusFlag(false); } else {
M
src/FocusControl.hh
→
src/FocusControl.hh
@@ -101,7 +101,9 @@ static void revertFocus(BScreen &screen);
// like revertFocus, but specifically related to this window (transients etc) static void unfocusWindow(WinClient &client, bool full_revert = true, bool unfocus_frame = false); static void setFocusedWindow(WinClient *focus_to); + static void setFocusedFbWindow(FluxboxWindow *focus_to) { s_focused_fbwindow = focus_to; } static WinClient *focusedWindow() { return s_focused_window; } + static FluxboxWindow *focusedFbWindow() { return s_focused_fbwindow; } private: BScreen &m_screen;
M
src/fluxbox.cc
→
src/fluxbox.cc
@@ -1227,8 +1227,8 @@
// make sure each workspace get this BScreen &scr = win.screen(); scr.removeWindow(&win); - if (FocusControl::focusedWindow() == &win.winClient()) - FocusControl::setFocusedWindow(0); + if (FocusControl::focusedFbWindow() == &win) + FocusControl::setFocusedFbWindow(0); } else if ((&(win.workspaceSig())) == changedsub) { // workspace signal for (AtomHandlerContainerIt it= m_atomhandler.begin();