aboutsummaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2019-03-16 09:18:54 +1000
committerLibravatar Drew DeVault <sir@cmpwn.com>2019-03-17 10:02:04 -0600
commitfb3475e291ea6be94131c19fdc006e9ad873ea5f (patch)
treeedf7a13eb1ee74f8efd14a8d7b5355f820a8b10a /sway
parentconfig/output: revamp identifier/name layering (diff)
downloadsway-fb3475e291ea6be94131c19fdc006e9ad873ea5f.tar.gz
sway-fb3475e291ea6be94131c19fdc006e9ad873ea5f.tar.zst
sway-fb3475e291ea6be94131c19fdc006e9ad873ea5f.zip
Replace seatup allows_events with button callback
Diffstat (limited to 'sway')
-rw-r--r--sway/input/cursor.c4
-rw-r--r--sway/input/seat.c12
-rw-r--r--sway/input/seatop_down.c8
3 files changed, 16 insertions, 8 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index d531a20e..011b4929 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -610,9 +610,7 @@ void dispatch_cursor_button(struct sway_cursor *cursor,
610 } else { 610 } else {
611 state_erase_button(cursor, button); 611 state_erase_button(cursor, button);
612 } 612 }
613 if (seatop_allows_events(seat)) { 613 seatop_button(seat, time_msec, device, button, state);
614 seat_pointer_notify_button(seat, time_msec, button, state);
615 }
616 if (button == seat->seatop_button && state == WLR_BUTTON_RELEASED) { 614 if (button == seat->seatop_button && state == WLR_BUTTON_RELEASED) {
617 seatop_finish(seat, time_msec); 615 seatop_finish(seat, time_msec);
618 } 616 }
diff --git a/sway/input/seat.c b/sway/input/seat.c
index e56a6510..2c9a85c4 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -1216,6 +1216,14 @@ void seatop_unref(struct sway_seat *seat, struct sway_container *con) {
1216 } 1216 }
1217} 1217}
1218 1218
1219void seatop_button(struct sway_seat *seat, uint32_t time_msec,
1220 struct wlr_input_device *device, uint32_t button,
1221 enum wlr_button_state state) {
1222 if (seat->seatop_impl && seat->seatop_impl->button) {
1223 seat->seatop_impl->button(seat, time_msec, device, button, state);
1224 }
1225}
1226
1219void seatop_motion(struct sway_seat *seat, uint32_t time_msec) { 1227void seatop_motion(struct sway_seat *seat, uint32_t time_msec) {
1220 if (seat->seatop_impl && seat->seatop_impl->motion) { 1228 if (seat->seatop_impl && seat->seatop_impl->motion) {
1221 seat->seatop_impl->motion(seat, time_msec); 1229 seat->seatop_impl->motion(seat, time_msec);
@@ -1246,7 +1254,3 @@ void seatop_render(struct sway_seat *seat, struct sway_output *output,
1246 seat->seatop_impl->render(seat, output, damage); 1254 seat->seatop_impl->render(seat, output, damage);
1247 } 1255 }
1248} 1256}
1249
1250bool seatop_allows_events(struct sway_seat *seat) {
1251 return seat->seatop_impl && seat->seatop_impl->allows_events;
1252}
diff --git a/sway/input/seatop_down.c b/sway/input/seatop_down.c
index 895571b1..fb2cf1d0 100644
--- a/sway/input/seatop_down.c
+++ b/sway/input/seatop_down.c
@@ -11,6 +11,12 @@ struct seatop_down_event {
11 bool moved; 11 bool moved;
12}; 12};
13 13
14static void handle_button(struct sway_seat *seat, uint32_t time_msec,
15 struct wlr_input_device *device, uint32_t button,
16 enum wlr_button_state state) {
17 seat_pointer_notify_button(seat, time_msec, button, state);
18}
19
14static void handle_motion(struct sway_seat *seat, uint32_t time_msec) { 20static void handle_motion(struct sway_seat *seat, uint32_t time_msec) {
15 struct seatop_down_event *e = seat->seatop_data; 21 struct seatop_down_event *e = seat->seatop_data;
16 struct sway_container *con = e->con; 22 struct sway_container *con = e->con;
@@ -54,11 +60,11 @@ static void handle_unref(struct sway_seat *seat, struct sway_container *con) {
54} 60}
55 61
56static const struct sway_seatop_impl seatop_impl = { 62static const struct sway_seatop_impl seatop_impl = {
63 .button = handle_button,
57 .motion = handle_motion, 64 .motion = handle_motion,
58 .finish = handle_finish, 65 .finish = handle_finish,
59 .abort = handle_abort, 66 .abort = handle_abort,
60 .unref = handle_unref, 67 .unref = handle_unref,
61 .allows_events = true,
62}; 68};
63 69
64void seatop_begin_down(struct sway_seat *seat, struct sway_container *con, 70void seatop_begin_down(struct sway_seat *seat, struct sway_container *con,