all repos — fluxbox @ 9e6c12361113669fad460d66521faaa03102936e

custom fork of the fluxbox windowmanager

Fixing my own code
markt markt
commit

9e6c12361113669fad460d66521faaa03102936e

parent

03d3c6c99cecf8bf521bea448915017d6879f545

3 files changed, 5 insertions(+), 4 deletions(-)

jump to
M src/FocusControl.ccsrc/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.hhsrc/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.ccsrc/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();