diff options
-rw-r--r-- | include/sway/input/cursor.h | 1 | ||||
-rw-r--r-- | sway/input/cursor.c | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h index 35738894..3f46c548 100644 --- a/include/sway/input/cursor.h +++ b/include/sway/input/cursor.h | |||
@@ -55,6 +55,7 @@ struct sway_cursor { | |||
55 | struct wl_listener tool_tip; | 55 | struct wl_listener tool_tip; |
56 | struct wl_listener tool_proximity; | 56 | struct wl_listener tool_proximity; |
57 | struct wl_listener tool_button; | 57 | struct wl_listener tool_button; |
58 | bool simulated_tool_tip_down; | ||
58 | uint32_t tool_buttons; | 59 | uint32_t tool_buttons; |
59 | 60 | ||
60 | struct wl_listener request_set_cursor; | 61 | struct wl_listener request_set_cursor; |
diff --git a/sway/input/cursor.c b/sway/input/cursor.c index 0649f468..a28da999 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c | |||
@@ -618,8 +618,9 @@ static void handle_tool_tip(struct wl_listener *listener, void *data) { | |||
618 | wlr_tablet_v2_tablet_tool_notify_up(sway_tool->tablet_v2_tool); | 618 | wlr_tablet_v2_tablet_tool_notify_up(sway_tool->tablet_v2_tool); |
619 | } | 619 | } |
620 | 620 | ||
621 | cursor->simulated_tool_tip_down = event->state == WLR_TABLET_TOOL_TIP_DOWN; | ||
621 | dispatch_cursor_button(cursor, event->device, event->time_msec, | 622 | dispatch_cursor_button(cursor, event->device, event->time_msec, |
622 | BTN_LEFT, event->state == WLR_TABLET_TOOL_TIP_DOWN ? | 623 | BTN_LEFT, cursor->simulated_tool_tip_down ? |
623 | WLR_BUTTON_PRESSED : WLR_BUTTON_RELEASED); | 624 | WLR_BUTTON_PRESSED : WLR_BUTTON_RELEASED); |
624 | wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat); | 625 | wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat); |
625 | transaction_commit_dirty(); | 626 | transaction_commit_dirty(); |
@@ -630,6 +631,12 @@ static void handle_tool_tip(struct wl_listener *listener, void *data) { | |||
630 | wlr_tablet_v2_tablet_tool_notify_down(sway_tool->tablet_v2_tool); | 631 | wlr_tablet_v2_tablet_tool_notify_down(sway_tool->tablet_v2_tool); |
631 | wlr_tablet_tool_v2_start_implicit_grab(sway_tool->tablet_v2_tool); | 632 | wlr_tablet_tool_v2_start_implicit_grab(sway_tool->tablet_v2_tool); |
632 | } else { | 633 | } else { |
634 | if (cursor->simulated_tool_tip_down) { | ||
635 | dispatch_cursor_button(cursor, event->device, event->time_msec, BTN_LEFT, | ||
636 | WLR_BUTTON_RELEASED); | ||
637 | cursor->simulated_tool_tip_down = false; | ||
638 | } | ||
639 | |||
633 | wlr_tablet_v2_tablet_tool_notify_up(sway_tool->tablet_v2_tool); | 640 | wlr_tablet_v2_tablet_tool_notify_up(sway_tool->tablet_v2_tool); |
634 | } | 641 | } |
635 | } | 642 | } |