commit 2262ae60f4c405b881ca342a96f90865adc60ad0
parent a8a6ed667d0f9fe747a86bd8607f875e097e3af5
Author: Tudor Brindus <me@tbrindus.ca>
Date: Sat, 2 May 2020 19:09:58 -0400
input/cursor: don't apply pointer constraint to emulated tablet input
Closes #5268.
Diffstat:
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
@@ -292,16 +292,19 @@ void cursor_unhide(struct sway_cursor *cursor) {
static void pointer_motion(struct sway_cursor *cursor, uint32_t time_msec,
struct wlr_input_device *device, double dx, double dy,
double dx_unaccel, double dy_unaccel) {
- cursor_handle_activity(cursor, IDLE_SOURCE_POINTER);
+ if (device->type == WLR_INPUT_DEVICE_POINTER) {
+ cursor_handle_activity(cursor, IDLE_SOURCE_POINTER);
+ }
wlr_relative_pointer_manager_v1_send_relative_motion(
server.relative_pointer_manager,
cursor->seat->wlr_seat, (uint64_t)time_msec * 1000,
dx, dy, dx_unaccel, dy_unaccel);
- struct wlr_surface *surface = NULL;
- double sx, sy;
- if (cursor->active_constraint) {
+ // Only apply pointer constraints to real pointer input.
+ if (cursor->active_constraint && device->type == WLR_INPUT_DEVICE_POINTER) {
+ struct wlr_surface *surface = NULL;
+ double sx, sy;
node_at_coords(cursor->seat,
cursor->cursor->x, cursor->cursor->y, &surface, &sx, &sy);