aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authorAshkan Kiani <ashkan.k.kiani@gmail.com>2019-06-15 11:08:53 -0700
committerSimon Ser <contact@emersion.fr>2019-06-16 00:59:53 +0300
commit06a13203ddb9c085b1e514b09b424c19f058fd8d (patch)
tree6dbe17dda9dda10c651b8b4e5584232dd29ba940 /include/wlr
parentb85f0cbff9b6fb4fb87914be8a77bd6ac8c0ac40 (diff)
Use a set to track pointer button state.
In addition to `button_count`, we keep track of the current buttons pressed just as in `wlr_keyboard`. Add `set_add` and `set_remove` to assist with this. These functions can only be used with values greater than 0 (such as the button/key masks for keyboards and pointers). Partially addresses: - https://github.com/swaywm/wlroots/issues/1716 - https://github.com/swaywm/wlroots/issues/1593
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/types/wlr_seat.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/wlr/types/wlr_seat.h b/include/wlr/types/wlr_seat.h
index 0724136b..bfd3625d 100644
--- a/include/wlr/types/wlr_seat.h
+++ b/include/wlr/types/wlr_seat.h
@@ -131,6 +131,8 @@ struct wlr_seat_pointer_grab {
void *data;
};
+#define WLR_POINTER_BUTTONS_CAP 16
+
struct wlr_seat_pointer_state {
struct wlr_seat *seat;
struct wlr_seat_client *focused_client;
@@ -140,7 +142,8 @@ struct wlr_seat_pointer_state {
struct wlr_seat_pointer_grab *grab;
struct wlr_seat_pointer_grab *default_grab;
- uint32_t button_count;
+ uint32_t buttons[WLR_POINTER_BUTTONS_CAP];
+ size_t button_count;
uint32_t grab_button;
uint32_t grab_serial;
uint32_t grab_time;