diff options
Diffstat (limited to 'dwm-pointerlock-6.8.diff')
| -rw-r--r-- | dwm-pointerlock-6.8.diff | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dwm-pointerlock-6.8.diff b/dwm-pointerlock-6.8.diff new file mode 100644 index 0000000..bb38f0a --- /dev/null +++ b/dwm-pointerlock-6.8.diff @@ -0,0 +1,38 @@ +From 15cb084b099abe22b2d25a860b8739a81614cc48 Mon Sep 17 00:00:00 2001 +From: Daniel Guihot <daniel@guihot.net> +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 + |
