From 2f92c2be63a80be2bfd85070f550a41a9188a471 Mon Sep 17 00:00:00 2001 From: tokyo4j Date: Tue, 24 Sep 2024 03:14:48 +0900 Subject: [PATCH] interactive: clear cursor focus at the start of move/resize Sending button release event at the end of interactive move/resize may trigger unexpected actions by applications (e.g. Firefox PiP sending `show_window_menu`). Let's clear the cursor focus at the start of move/resize, which follows what KWin and Mutter do. --- src/input/cursor.c | 4 ---- src/interactive.c | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/input/cursor.c b/src/input/cursor.c index 68636f1a..7860766a 100644 --- a/src/input/cursor.c +++ b/src/input/cursor.c @@ -1109,10 +1109,6 @@ cursor_process_button_release(struct seat *seat, uint32_t button, } if (server->input_mode != LAB_INPUT_STATE_PASSTHROUGH) { - if (pressed_surface) { - /* Ensure CSD clients see the release event */ - return true; - } return false; } diff --git a/src/interactive.c b/src/interactive.c index 91081fd3..5488cdde 100644 --- a/src/interactive.c +++ b/src/interactive.c @@ -153,6 +153,8 @@ interactive_begin(struct view *view, enum input_mode mode, uint32_t edges) view_restore_to(view, natural_geo); } + wlr_seat_pointer_notify_clear_focus(seat->seat); + if (rc.resize_indicator) { resize_indicator_show(view); }