From efad5bc49ce237afd4315d627d16586c8b28c60d Mon Sep 17 00:00:00 2001 From: stephen finkel Date: Sat, 24 Oct 2026 23:01:57 -0400 Subject: [PATCH] input: release DND pointer grab on button release Dragging a file into another application can leave server-side window decorations unresponsive. For example, dragging a file into a terminal or a PDF/image into a web browser can cause the window title bar and decorations to stop responding to pointer input. The pointer grab can remain in the DND state after the drag ends, preventing server-side decorations from receiving pointer input. --- src/core/seat/pointer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/seat/pointer.cpp b/src/core/seat/pointer.cpp index 90c001aed..40c5ee445 100644 --- a/src/core/seat/pointer.cpp +++ b/src/core/seat/pointer.cpp @@ -322,7 +322,8 @@ void wf::pointer_t::check_implicit_grab() /* end the button held grab. We need to to this here after we have send * the last button release event, so that buttons don't get stuck in clients */ if ((count_pressed_buttons == 0) && - (current_grab_kind == input_grab_kind_t::IMPLICIT)) + ((current_grab_kind == input_grab_kind_t::IMPLICIT) || + (current_grab_kind == input_grab_kind_t::DND))) { grab_surface(nullptr); }