diff options
author | Mathias Gumz <akira@fluxbox.org> | 2015-01-22 09:14:12 (GMT) |
---|---|---|
committer | Mathias Gumz <akira@fluxbox.org> | 2015-01-22 09:14:12 (GMT) |
commit | c0e5d1c7a3867a82e0418e921afabf8e14909429 (patch) | |
tree | df9d654321c6aa15af5417f0d7803a7bd408621c /src/fluxbox.cc | |
parent | 5428edf3daec57f490518ac356f60cc1a05a3693 (diff) | |
download | fluxbox-c0e5d1c7a3867a82e0418e921afabf8e14909429.zip fluxbox-c0e5d1c7a3867a82e0418e921afabf8e14909429.tar.bz2 |
Fix broken _NET_REQUEST_FRAME_EXTENTS support
There was a subtle flaw in the way fluxbox detects to which BScreen a
given Window belongs: We have to compare the RootWindow of the given
Window against the RootWindow of each BScreen.
That underlying flaw made _NET_REQUEST_FRAME_EXTENTS fail: the code path
needs a valid BScreen for the given window, otherwise we return early.
Closes #1121.
Diffstat (limited to 'src/fluxbox.cc')
-rw-r--r-- | src/fluxbox.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc index ab05f56..9b787f7 100644 --- a/src/fluxbox.cc +++ b/src/fluxbox.cc | |||
@@ -976,10 +976,15 @@ void Fluxbox::attachSignals(WinClient &winclient) { | |||
976 | 976 | ||
977 | BScreen *Fluxbox::searchScreen(Window window) { | 977 | BScreen *Fluxbox::searchScreen(Window window) { |
978 | 978 | ||
979 | Window window_root = FbTk::FbWindow::rootWindow(display(), window); | ||
980 | if (window_root == None) { | ||
981 | return 0; | ||
982 | } | ||
983 | |||
979 | ScreenList::iterator it = m_screen_list.begin(); | 984 | ScreenList::iterator it = m_screen_list.begin(); |
980 | ScreenList::iterator it_end = m_screen_list.end(); | 985 | ScreenList::iterator it_end = m_screen_list.end(); |
981 | for (; it != it_end; ++it) { | 986 | for (; it != it_end; ++it) { |
982 | if (*it && (*it)->rootWindow() == window) | 987 | if (*it && (*it)->rootWindow() == window_root) |
983 | return *it; | 988 | return *it; |
984 | } | 989 | } |
985 | 990 | ||