Don't send focus events for the wrong windows

Prevents focus switching loop with UpdatePointer.
From https://code.google.com/archive/p/xmonad/issues/200
This commit is contained in:
Paul Hebble
2016-12-24 21:01:44 -06:00
parent 2b103ede55
commit 3a140badf5

View File

@@ -357,7 +357,11 @@ handle e@(ButtonEvent {ev_window = w,ev_event_type = t,ev_button = b })
-- True in the user's config.
handle e@(CrossingEvent {ev_window = w, ev_event_type = t})
| t == enterNotify && ev_mode e == notifyNormal
= whenX (asks $ focusFollowsMouse . config) (focus w)
= whenX (asks $ focusFollowsMouse . config) $ do
dpy <- asks display
root <- asks theRoot
(_, _, w', _, _, _, _, _) <- io $ queryPointer dpy root
when (w == w') (focus w)
-- left a window, check if we need to focus root
handle e@(CrossingEvent {ev_event_type = t})