From 601a6250b7683ac90d1c84e317904d0263d4c26c Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Thu, 8 Sep 2022 00:57:59 +0200 Subject: [PATCH] cursor: Allow cursor button events to trigger cursor_rebase() --- src/cursor.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/cursor.c b/src/cursor.c index 58df0608..894fd9bd 100644 --- a/src/cursor.c +++ b/src/cursor.c @@ -27,11 +27,6 @@ is_surface(enum ssd_part_type view_area) void cursor_rebase(struct seat *seat, uint32_t time_msec, bool force) { - if (seat->pressed.surface) { - /* Don't leave surface while a button is pressed */ - return; - } - double sx, sy; struct wlr_scene_node *node; enum ssd_part_type view_area = LAB_SSD_NONE; @@ -44,6 +39,10 @@ cursor_rebase(struct seat *seat, uint32_t time_msec, bool force) } ssd_update_button_hover(node, &seat->server->ssd_hover_state); + if (seat->pressed.surface && surface != seat->pressed.surface) { + /* Don't leave surface when a button was pressed over another surface */ + return; + } if (surface) { if (!force && surface == seat->seat->pointer_state.focused_surface) {