mirror of
https://github.com/xmonad/xmonad.git
synced 2025-08-02 05:01:53 -07:00
Merge pull request #65 from HebaruSan/focus-race-condition
Don't send focus events for the wrong windows
This commit is contained in:
@@ -364,7 +364,11 @@ handle e@(ButtonEvent {ev_window = w,ev_event_type = t,ev_button = b })
|
|||||||
-- True in the user's config.
|
-- True in the user's config.
|
||||||
handle e@(CrossingEvent {ev_window = w, ev_event_type = t})
|
handle e@(CrossingEvent {ev_window = w, ev_event_type = t})
|
||||||
| t == enterNotify && ev_mode e == notifyNormal
|
| 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
|
-- left a window, check if we need to focus root
|
||||||
handle e@(CrossingEvent {ev_event_type = t})
|
handle e@(CrossingEvent {ev_event_type = t})
|
||||||
|
Reference in New Issue
Block a user