From 15cb084b099abe22b2d25a860b8739a81614cc48 Mon Sep 17 00:00:00 2001 From: Daniel Guihot Date: Wed, 16 Sep 2026 05:06:40 +1000 Subject: [PATCH] pointerlock: ignore pointer focus changes while fullscreen enternotify() and motionnotify() change the selected monitor and focus when the pointer crosses a monitor edge. A fullscreen client can lose focus from mouse movement alone. Keep the focus on it while lockfullscreen is set, the same policy focusstack() already follows. --- dwm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dwm.c b/dwm.c index 53b393e..4872c7b 100644 --- a/dwm.c +++ b/dwm.c @@ -763,6 +763,8 @@ enternotify(XEvent *e) Monitor *m; XCrossingEvent *ev = &e->xcrossing; + if (lockfullscreen && selmon->sel && selmon->sel->isfullscreen) + return; if ((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root) return; c = wintoclient(ev->window); @@ -1132,6 +1134,8 @@ motionnotify(XEvent *e) Monitor *m; XMotionEvent *ev = &e->xmotion; + if (lockfullscreen && selmon->sel && selmon->sel->isfullscreen) + return; if (ev->window != root) return; if ((m = recttomon(ev->x_root, ev->y_root, 1, 1)) != mon && mon) { -- 2.55.0