diff options
author | Jim Ramsay <i.am@jimramsay.com> | 2009-01-30 15:47:24 (GMT) |
---|---|---|
committer | Jim Ramsay <i.am@jimramsay.com> | 2009-02-27 20:18:07 (GMT) |
commit | 76ea1d9bbe3f3b7edb15da1a67652982edd5f646 (patch) | |
tree | 282bf00695dacb9bbaf09fcabd5f5d17bf409986 /src | |
parent | 5c7784affe78467d7ef4e52e22da83c341622d53 (diff) | |
download | fluxbox-76ea1d9bbe3f3b7edb15da1a67652982edd5f646.zip fluxbox-76ea1d9bbe3f3b7edb15da1a67652982edd5f646.tar.bz2 |
Ignore EnterNotify on Unmap
This is the basic condition that was first noticed because of the effect of the
ClientMenu window unmapping and the resulting EnterNotify event stealing focus
from the window selected in that menu. But to be complete, any window unmapping
should cause focus to move to the next in the last-recently-focused window list,
not the one that happens to be beneath the mouse cursor.
Diffstat (limited to 'src')
-rw-r--r-- | src/fluxbox.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc index 93768da..f44f8aa 100644 --- a/src/fluxbox.cc +++ b/src/fluxbox.cc | |||
@@ -899,6 +899,11 @@ void Fluxbox::handleUnmapNotify(XUnmapEvent &ue) { | |||
899 | 899 | ||
900 | BScreen *screen = searchScreen(ue.event); | 900 | BScreen *screen = searchScreen(ue.event); |
901 | 901 | ||
902 | if (screen) { | ||
903 | /* Ignore all EnterNotify events until the pointer actually moves */ | ||
904 | screen->focusControl().ignoreAtPointer(); | ||
905 | } | ||
906 | |||
902 | if (ue.event != ue.window && (!screen || !ue.send_event)) { | 907 | if (ue.event != ue.window && (!screen || !ue.send_event)) { |
903 | return; | 908 | return; |
904 | } | 909 | } |