diff --git a/src/XMonad/Main.hs b/src/XMonad/Main.hs index 3b6ace1..735725c 100644 --- a/src/XMonad/Main.hs +++ b/src/XMonad/Main.hs @@ -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})