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.
This commit is contained in:
Tudor Brindus 2020-06-14 17:21:38 -04:00 committed by Simon Ser
parent 82c439c4f1
commit d328c2439c
2 changed files with 14 additions and 14 deletions

View file

@ -91,7 +91,7 @@ void cursor_rebase_all(void);
void cursor_update_image(struct sway_cursor *cursor, struct sway_node *node); void cursor_update_image(struct sway_cursor *cursor, struct sway_node *node);
void cursor_handle_activity(struct sway_cursor *cursor, 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); void cursor_unhide(struct sway_cursor *cursor);
int cursor_get_timeout(struct sway_cursor *cursor); int cursor_get_timeout(struct sway_cursor *cursor);

View file

@ -256,21 +256,21 @@ int cursor_get_timeout(struct sway_cursor *cursor) {
static enum sway_input_idle_source idle_source_from_device( static enum sway_input_idle_source idle_source_from_device(
struct wlr_input_device *device) { struct wlr_input_device *device) {
switch (device->type) { switch (device->type) {
case WLR_INPUT_DEVICE_KEYBOARD: case WLR_INPUT_DEVICE_KEYBOARD:
return IDLE_SOURCE_KEYBOARD; return IDLE_SOURCE_KEYBOARD;
case WLR_INPUT_DEVICE_POINTER: case WLR_INPUT_DEVICE_POINTER:
return IDLE_SOURCE_POINTER; return IDLE_SOURCE_POINTER;
case WLR_INPUT_DEVICE_TOUCH: case WLR_INPUT_DEVICE_TOUCH:
return IDLE_SOURCE_TOUCH; return IDLE_SOURCE_TOUCH;
case WLR_INPUT_DEVICE_TABLET_TOOL: case WLR_INPUT_DEVICE_TABLET_TOOL:
return IDLE_SOURCE_TABLET_TOOL; return IDLE_SOURCE_TABLET_TOOL;
case WLR_INPUT_DEVICE_TABLET_PAD: case WLR_INPUT_DEVICE_TABLET_PAD:
return IDLE_SOURCE_TABLET_PAD; return IDLE_SOURCE_TABLET_PAD;
case WLR_INPUT_DEVICE_SWITCH: case WLR_INPUT_DEVICE_SWITCH:
return IDLE_SOURCE_SWITCH; return IDLE_SOURCE_SWITCH;
} }
assert(false); abort();
} }
void cursor_handle_activity(struct sway_cursor *cursor, void cursor_handle_activity(struct sway_cursor *cursor,