Merge pull request #65 from HebaruSan/focus-race-condition

Don't send focus events for the wrong windows
This commit is contained in:
Peter J. Jones
2017-02-06 17:29:32 -07:00
committed by GitHub

View File

@@ -364,7 +364,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})