all repos — fluxbox @ 8bda89394b5bcbca5781f1e60bd786c17c1bee49

custom fork of the fluxbox windowmanager

make sure we don't steal focus from unmanaged windows
markt markt
commit

8bda89394b5bcbca5781f1e60bd786c17c1bee49

parent

61cf82771af9d39703ad0ebfdc9299fe5ffe525d

2 files changed, 17 insertions(+), 2 deletions(-)

jump to
M ChangeLogChangeLog

@@ -1,5 +1,8 @@

(Format: Year/Month/Day) Changes for 1.0rc3: +*07/03/10: + * Fixed stealing focus from unmanaged windows (Mark) + fluxbox.cc *07/03/07: * Fixed a little bug with reverting focus after closing menu (Mark) FbTk/Menu.cc
M src/fluxbox.ccsrc/fluxbox.cc

@@ -1719,8 +1719,20 @@ m_reconfigure_wait = m_reread_menu_wait = false;

} void Fluxbox::revert_focus() { - if (m_revert_screen && !FocusControl::focusedWindow() && - !FbTk::Menu::focused() && !m_showing_dialog) + if (!m_revert_screen || FocusControl::focusedWindow() || + FbTk::Menu::focused() || m_showing_dialog) + return; + + Window win; + int revert; + Display *disp = display(); + + XGetInputFocus(disp, &win, &revert); + + // we only want to revert focus if it's left dangling, as some other + // application may have set the focus to an unmanaged window + if (win == None || win == PointerRoot || + win == m_revert_screen->rootWindow().window()) FocusControl::revertFocus(*m_revert_screen); }