summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTudor Brindus <me@tbrindus.ca>2020-06-14 17:21:38 -0400
committerSimon Ser <contact@emersion.fr>2020-06-18 22:35:01 +0200
commitd328c2439c47fbbb24f74fd26e1a88ad8aaa3ace (patch)
tree3ad5263b2cc20e5bf2fe6e0352058e2db30993ce
parent82c439c4f116b36d7d171bcc923b50ead59b4ab2 (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.h2
-rw-r--r--sway/input/cursor.c30
2 files changed, 16 insertions, 16 deletions
diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h
index c2e2228af..4c130fafc 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 f4ac74b4f..d10ba444b 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,