From da9456881d746113ca79f782be1d78dc37bde10e Mon Sep 17 00:00:00 2001 From: tokyo4j Date: Fri, 5 Apr 2024 18:01:06 +0900 Subject: [PATCH] cursor: send release event to CSD client before finishing window dragging This fixes that, when a CSD window is dragged into below waybar and the cursor button is released, the cursor focus is moved from the CSD window to waybar and a release event is sent to waybar, not original CSD window. --- src/input/cursor.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/input/cursor.c b/src/input/cursor.c index 11b71b82..8f4f759e 100644 --- a/src/input/cursor.c +++ b/src/input/cursor.c @@ -1033,14 +1033,15 @@ cursor_button_release(struct seat *seat, uint32_t button, } if (server->input_mode != LAB_INPUT_STATE_PASSTHROUGH) { - /* Exit interactive move/resize mode */ - interactive_finish(server->grabbed_view); - if (pressed_surface) { /* Ensure CSD clients see the release event */ wlr_seat_pointer_notify_button(seat->seat, time_msec, button, button_state); } + + /* Exit interactive move/resize mode */ + interactive_finish(server->grabbed_view); + return; } -- 2.52.0