diff options
author | Tudor Brindus <me@tbrindus.ca> | 2020-06-14 17:21:38 -0400 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-06-18 22:35:01 +0200 |
commit | d328c2439c47fbbb24f74fd26e1a88ad8aaa3ace (patch) | |
tree | 3ad5263b2cc20e5bf2fe6e0352058e2db30993ce | |
parent | 82c439c4f116b36d7d171bcc923b50ead59b4ab2 (diff) |
input/pointer: don't trigger pointer bindings for emulated input
Prior to this commit, a tablet device could trigger mouse button down
bindings if the pen was pressed on a surface that didn't bind tablet
handlers -- but it wouldn't if the surface did bind tablet handlers.
We should expose consistent behavior to users so that they don't have to
care about emulated vs. non-emulated input, so stop triggering bindings
for any non-pointer devices.
-rw-r--r-- | include/sway/input/cursor.h | 2 | ||||
-rw-r--r-- | sway/input/cursor.c | 30 |
2 files changed, 16 insertions, 16 deletions
diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h index c2e2228a..4c130faf 100644 --- a/include/sway/input/cursor.h +++ b/include/sway/input/cursor.h @@ -91,7 +91,7 @@ void cursor_rebase_all(void); void cursor_update_image(struct sway_cursor *cursor, struct sway_node *node); void cursor_handle_activity(struct sway_cursor *cursor, - struct wlr_input_device *device); + struct wlr_input_device *device); void cursor_unhide(struct sway_cursor *cursor); int cursor_get_timeout(struct sway_cursor *cursor); diff --git a/sway/input/cursor.c b/sway/input/cursor.c index f4ac74b4..d10ba444 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -256,21 +256,21 @@ int cursor_get_timeout(struct sway_cursor *cursor) { static enum sway_input_idle_source idle_source_from_device( struct wlr_input_device *device) { switch (device->type) { - case WLR_INPUT_DEVICE_KEYBOARD: - return IDLE_SOURCE_KEYBOARD; - case WLR_INPUT_DEVICE_POINTER: - return IDLE_SOURCE_POINTER; - case WLR_INPUT_DEVICE_TOUCH: - return IDLE_SOURCE_TOUCH; - case WLR_INPUT_DEVICE_TABLET_TOOL: - return IDLE_SOURCE_TABLET_TOOL; - case WLR_INPUT_DEVICE_TABLET_PAD: - return IDLE_SOURCE_TABLET_PAD; - case WLR_INPUT_DEVICE_SWITCH: - return IDLE_SOURCE_SWITCH; - } - - assert(false); + case WLR_INPUT_DEVICE_KEYBOARD: + return IDLE_SOURCE_KEYBOARD; + case WLR_INPUT_DEVICE_POINTER: + return IDLE_SOURCE_POINTER; + case WLR_INPUT_DEVICE_TOUCH: + return IDLE_SOURCE_TOUCH; + case WLR_INPUT_DEVICE_TABLET_TOOL: + return IDLE_SOURCE_TABLET_TOOL; + case WLR_INPUT_DEVICE_TABLET_PAD: + return IDLE_SOURCE_TABLET_PAD; + case WLR_INPUT_DEVICE_SWITCH: + return IDLE_SOURCE_SWITCH; + } + + abort(); } void cursor_handle_activity(struct sway_cursor *cursor, |