diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2019-03-06 18:54:41 +1000 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-03-11 10:57:16 -0400 |
commit | 9bfb38521a6016042dffbe7e3242265b8134bda5 (patch) | |
tree | 4432120c30514af3e664f115c338b9a5cd5edb53 /include/sway/input/seat.h | |
parent | stringop.c: refactor a few functions (diff) | |
download | sway-9bfb38521a6016042dffbe7e3242265b8134bda5.tar.gz sway-9bfb38521a6016042dffbe7e3242265b8134bda5.tar.zst sway-9bfb38521a6016042dffbe7e3242265b8134bda5.zip |
Don't send button events to surfaces when dragging or resizing
It turns out sending button events during all seat operations is not
desirable. This patch introduces a new property
`seatop_impl.allows_events` which allows each operation to define
whether button events should be passed to the surface or not.
The `down` seat operation is the only one that supports this. As all the
other seatops don't support it, the calls to seat_pointer_notify_button
prior to starting them have been removed.
Diffstat (limited to 'include/sway/input/seat.h')
-rw-r--r-- | include/sway/input/seat.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index 0f5dab98..eb674b70 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h | |||
@@ -15,6 +15,7 @@ struct sway_seatop_impl { | |||
15 | void (*unref)(struct sway_seat *seat, struct sway_container *con); | 15 | void (*unref)(struct sway_seat *seat, struct sway_container *con); |
16 | void (*render)(struct sway_seat *seat, struct sway_output *output, | 16 | void (*render)(struct sway_seat *seat, struct sway_output *output, |
17 | pixman_region32_t *damage); | 17 | pixman_region32_t *damage); |
18 | bool allows_events; | ||
18 | }; | 19 | }; |
19 | 20 | ||
20 | struct sway_seat_device { | 21 | struct sway_seat_device { |
@@ -239,4 +240,6 @@ void seatop_unref(struct sway_seat *seat, struct sway_container *con); | |||
239 | void seatop_render(struct sway_seat *seat, struct sway_output *output, | 240 | void seatop_render(struct sway_seat *seat, struct sway_output *output, |
240 | pixman_region32_t *damage); | 241 | pixman_region32_t *damage); |
241 | 242 | ||
243 | bool seatop_allows_events(struct sway_seat *seat); | ||
244 | |||
242 | #endif | 245 | #endif |