From 16e07f751c736e59189d4216d951990b9bc0c220 Mon Sep 17 00:00:00 2001 From: lkn Date: Sat, 6 Jun 2026 20:41:42 +0200 Subject: [PATCH] =?UTF-8?q?wayland:=20fix=20modifier+drag=20grab=20?= =?UTF-8?q?=E2=80=94=20pass=20owner=5Fevents=3D1=20in=20frameMouseDown?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pointer_grab call for Alt+drag (move/resize via MOD_MASK on client surface) was passing owner_events=0. wl_pointer_grab only sets grab_type=3 and clears seat pointer focus when owner_events is True; with 0 the grab returned success but left no grab state, so motion events continued flowing to the client instead of the WM drag loop. Pass 1 (True) to match the calls in resizebarMouseDown and titlebarMouseDown, which work correctly. --- src/window.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/window.c b/src/window.c index 17bd0cc..1440f30 100644 --- a/src/window.c +++ b/src/window.c @@ -2711,7 +2711,7 @@ static void frameMouseDown(WObjDescriptor *desc, WBackendEvent *event) /* move the window */ if (!wm_backend->pointer_grab(wwin->client_win, WNATIVE_NONE, WM_EVMASK_BUTTON_MOTION | WM_EVMASK_BUTTON_RELEASE | WM_EVMASK_BUTTON_PRESS, - WCUR_NONE, 0, 0)) { + WCUR_NONE, 1, 0)) { return; } if (event->u.button.button == Button3) {