]> git.mdlowis.com Git - proto/labwc.git/commitdiff
cursor: Allow cursor button events to trigger cursor_rebase()
authorConsolatis <35009135+Consolatis@users.noreply.github.com>
Wed, 7 Sep 2022 22:57:59 +0000 (00:57 +0200)
committerConsolatis <35009135+Consolatis@users.noreply.github.com>
Wed, 7 Sep 2022 23:32:22 +0000 (01:32 +0200)
src/cursor.c

index 58df0608dbb93b0e5156ab027c77672f541bb5a6..894fd9bd5ae759d0f52db0956bcee4e8153f7c58 100644 (file)
@@ -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) {