From e12d2b7cc846485a172444c2e5288c55fa3a3c59 Mon Sep 17 00:00:00 2001 From: Mihail Costea Date: Mon, 20 Apr 2026 18:56:30 +0300 Subject: input: implement follow_mouse_shrink (#13707) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * input: implement follow_mouse_shrink Add a new config option `input:follow_mouse_shrink` (INT, 0-300, default 0) that shrinks inactive window hitboxes by the specified number of pixels for focus detection purposes. This creates a dead zone in gaps between windows where moving the cursor will not trigger a focus change. The shrink only applies to inactive (non-focused) windows and only during mouse-move focus checks (follow_mouse = 1). Click and scroll interactions are unaffected — clicking on a window in the shrunk area still works normally once the window is focused. Closes #9973 * tests: add integration test for follow_mouse_shrink --- src/desktop/view/Window.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/desktop') diff --git a/src/desktop/view/Window.hpp b/src/desktop/view/Window.hpp index f69585e3..a72c626b 100644 --- a/src/desktop/view/Window.hpp +++ b/src/desktop/view/Window.hpp @@ -55,7 +55,7 @@ namespace Desktop::View { GROUP_DENY = 1 << 7, // deny }; - enum eGetWindowProperties : uint8_t { + enum eGetWindowProperties : uint16_t { WINDOW_ONLY = 0, RESERVED_EXTENTS = 1 << 0, INPUT_EXTENTS = 1 << 1, @@ -65,6 +65,7 @@ namespace Desktop::View { USE_PROP_TILED = 1 << 5, SKIP_FULLSCREEN_PRIORITY = 1 << 6, FOCUS_PRIORITY = 1 << 7, + FOLLOW_MOUSE_CHECK = 1 << 8, }; enum eSuppressEvents : uint8_t { -- cgit v1.2.3