From ce696a72a01f78783d070f0f73965c7cc236849a Mon Sep 17 00:00:00 2001 From: lkn Date: Tue, 23 Jun 2026 17:33:36 +0200 Subject: [PATCH] fix DnD crash: do not double-deliver button events during drag When a drag grab is active, wlroots internally handles button events via the grab mechanism. Calling wlr_seat_pointer_notify_button manually during a drag double-delivers the release, causing an assertion in wlr_data_source_destroy. --- src/backend/wayland/wl_handlers.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/backend/wayland/wl_handlers.c b/src/backend/wayland/wl_handlers.c index c4e60c2..bb62994 100644 --- a/src/backend/wayland/wl_handlers.c +++ b/src/backend/wayland/wl_handlers.c @@ -331,11 +331,6 @@ handle_pointer_button(struct wl_listener *listener, void *data) wlr_seat_pointer_notify_button(wl_state.seat, ev->time_msec, ev->button, ev->state); wlr_seat_pointer_notify_frame(wl_state.seat); - } else if (wl_state.seat->drag) { - /* Active drag grab: always forward so wlroots can end the drag. */ - wlr_seat_pointer_notify_button(wl_state.seat, ev->time_msec, - ev->button, ev->state); - wlr_seat_pointer_notify_frame(wl_state.seat); } }