diff options
| author | Tudor Brindus <me@tbrindus.ca> | 2020-04-25 22:12:59 -0400 | 
|---|---|---|
| committer | Simon Ser <contact@emersion.fr> | 2020-05-01 11:00:49 +0200 | 
| commit | 2913f39dcb58997ab055465154d7c7b287da10c7 (patch) | |
| tree | f8fee0fba77f9eab3d3a4348cd8ddf5aef6b6e4c /sway/input/cursor.c | |
| parent | 091f580b7cb0df92f0f6e0be34b52f8abfdbe97a (diff) | |
| download | sway-2913f39dcb58997ab055465154d7c7b287da10c7.tar.xz | |
input/cursor: release simulated tool tip button when over v2 surface
d88460f addressed sending v2 tool tip up when over a non-v2 surface.
This commit addresses the other direction.
Fixes #5230.
Diffstat (limited to 'sway/input/cursor.c')
| -rw-r--r-- | sway/input/cursor.c | 9 | 
1 files changed, 8 insertions, 1 deletions
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) {  			wlr_tablet_v2_tablet_tool_notify_up(sway_tool->tablet_v2_tool);  		} +		cursor->simulated_tool_tip_down = event->state == WLR_TABLET_TOOL_TIP_DOWN;  		dispatch_cursor_button(cursor, event->device, event->time_msec, -				BTN_LEFT, event->state == WLR_TABLET_TOOL_TIP_DOWN ? +				BTN_LEFT, cursor->simulated_tool_tip_down ?  					WLR_BUTTON_PRESSED : WLR_BUTTON_RELEASED);  		wlr_seat_pointer_notify_frame(cursor->seat->wlr_seat);  		transaction_commit_dirty(); @@ -630,6 +631,12 @@ static void handle_tool_tip(struct wl_listener *listener, void *data) {  		wlr_tablet_v2_tablet_tool_notify_down(sway_tool->tablet_v2_tool);  		wlr_tablet_tool_v2_start_implicit_grab(sway_tool->tablet_v2_tool);  	} else { +		if (cursor->simulated_tool_tip_down) { +			dispatch_cursor_button(cursor, event->device, event->time_msec, BTN_LEFT, +					WLR_BUTTON_RELEASED); +			cursor->simulated_tool_tip_down = false; +		} +  		wlr_tablet_v2_tablet_tool_notify_up(sway_tool->tablet_v2_tool);  	}  }  | 
