aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
authorMark Bolhuis <mark@bolhuis.dev>2023-06-26 21:43:13 +0100
committerSimon Ser <contact@emersion.fr>2023-06-26 22:57:46 +0200
commit20c91335f6ba515e43b444fafd52b822bd460eda (patch)
treedd7b8bf58795108127336a75933f190fd89ef244 /sway
parent974a8629a8f0f403028332543e4bd31d98f611c1 (diff)
input: Move wlr_pointer_gestures_v1 to sway_input_manager
On multi-seat configurations a zwp_pointer_gestures_v1 global was created for every seat. Instead, create the global once in the input manager, to be shared across all seats.
Diffstat (limited to 'sway')
-rw-r--r--sway/input/cursor.c3
-rw-r--r--sway/input/input-manager.c2
-rw-r--r--sway/input/seatop_default.c16
3 files changed, 10 insertions, 11 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index 7a4dd19f..f970e6a2 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -1154,9 +1154,6 @@ struct sway_cursor *sway_cursor_create(struct sway_seat *seat) {
wl_list_init(&cursor->image_surface_destroy.link);
cursor->image_surface_destroy.notify = handle_image_surface_destroy;
- // gesture events
- cursor->pointer_gestures = wlr_pointer_gestures_v1_create(server.wl_display);
-
wl_signal_add(&wlr_cursor->events.hold_begin, &cursor->hold_begin);
cursor->hold_begin.notify = handle_pointer_hold_begin;
wl_signal_add(&wlr_cursor->events.hold_end, &cursor->hold_end);
diff --git a/sway/input/input-manager.c b/sway/input/input-manager.c
index 5f7dfb42..db82bb4c 100644
--- a/sway/input/input-manager.c
+++ b/sway/input/input-manager.c
@@ -495,6 +495,8 @@ struct sway_input_manager *input_manager_create(struct sway_server *server) {
wl_signal_add(&input->keyboard_shortcuts_inhibit->events.new_inhibitor,
&input->keyboard_shortcuts_inhibit_new_inhibitor);
+ input->pointer_gestures = wlr_pointer_gestures_v1_create(server->wl_display);
+
return input;
}
diff --git a/sway/input/seatop_default.c b/sway/input/seatop_default.c
index f4c63808..1dce6dae 100644
--- a/sway/input/seatop_default.c
+++ b/sway/input/seatop_default.c
@@ -949,7 +949,7 @@ static void handle_hold_begin(struct sway_seat *seat,
// ... otherwise forward to client
struct sway_cursor *cursor = seat->cursor;
wlr_pointer_gestures_v1_send_hold_begin(
- cursor->pointer_gestures, cursor->seat->wlr_seat,
+ server.input->pointer_gestures, cursor->seat->wlr_seat,
event->time_msec, event->fingers);
}
}
@@ -961,7 +961,7 @@ static void handle_hold_end(struct sway_seat *seat,
if (!gesture_tracker_check(&seatop->gestures, GESTURE_TYPE_HOLD)) {
struct sway_cursor *cursor = seat->cursor;
wlr_pointer_gestures_v1_send_hold_end(
- cursor->pointer_gestures, cursor->seat->wlr_seat,
+ server.input->pointer_gestures, cursor->seat->wlr_seat,
event->time_msec, event->cancelled);
return;
}
@@ -994,7 +994,7 @@ static void handle_pinch_begin(struct sway_seat *seat,
// ... otherwise forward to client
struct sway_cursor *cursor = seat->cursor;
wlr_pointer_gestures_v1_send_pinch_begin(
- cursor->pointer_gestures, cursor->seat->wlr_seat,
+ server.input->pointer_gestures, cursor->seat->wlr_seat,
event->time_msec, event->fingers);
}
}
@@ -1010,7 +1010,7 @@ static void handle_pinch_update(struct sway_seat *seat,
// ... otherwise forward to client
struct sway_cursor *cursor = seat->cursor;
wlr_pointer_gestures_v1_send_pinch_update(
- cursor->pointer_gestures,
+ server.input->pointer_gestures,
cursor->seat->wlr_seat,
event->time_msec, event->dx, event->dy,
event->scale, event->rotation);
@@ -1024,7 +1024,7 @@ static void handle_pinch_end(struct sway_seat *seat,
if (!gesture_tracker_check(&seatop->gestures, GESTURE_TYPE_PINCH)) {
struct sway_cursor *cursor = seat->cursor;
wlr_pointer_gestures_v1_send_pinch_end(
- cursor->pointer_gestures, cursor->seat->wlr_seat,
+ server.input->pointer_gestures, cursor->seat->wlr_seat,
event->time_msec, event->cancelled);
return;
}
@@ -1057,7 +1057,7 @@ static void handle_swipe_begin(struct sway_seat *seat,
// ... otherwise forward to client
struct sway_cursor *cursor = seat->cursor;
wlr_pointer_gestures_v1_send_swipe_begin(
- cursor->pointer_gestures, cursor->seat->wlr_seat,
+ server.input->pointer_gestures, cursor->seat->wlr_seat,
event->time_msec, event->fingers);
}
}
@@ -1074,7 +1074,7 @@ static void handle_swipe_update(struct sway_seat *seat,
// ... otherwise forward to client
struct sway_cursor *cursor = seat->cursor;
wlr_pointer_gestures_v1_send_swipe_update(
- cursor->pointer_gestures, cursor->seat->wlr_seat,
+ server.input->pointer_gestures, cursor->seat->wlr_seat,
event->time_msec, event->dx, event->dy);
}
}
@@ -1085,7 +1085,7 @@ static void handle_swipe_end(struct sway_seat *seat,
struct seatop_default_event *seatop = seat->seatop_data;
if (!gesture_tracker_check(&seatop->gestures, GESTURE_TYPE_SWIPE)) {
struct sway_cursor *cursor = seat->cursor;
- wlr_pointer_gestures_v1_send_swipe_end(cursor->pointer_gestures,
+ wlr_pointer_gestures_v1_send_swipe_end(server.input->pointer_gestures,
cursor->seat->wlr_seat, event->time_msec, event->cancelled);
return;
}