aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTony Crisci <tony@dubstepdish.com>2017-10-06 06:54:43 -0400
committerTony Crisci <tony@dubstepdish.com>2017-10-06 06:54:43 -0400
commitd3ebf99b0fcadff6b70e6d7e90b956330cefe8a1 (patch)
tree0ccdee75aaf3ff5bbcbeb96abea296fac3dea796 /include
parent7b697fe841c7c5167e506f4ce6eed6ee935f69e4 (diff)
xdg-popup: basic pointer grab
Diffstat (limited to 'include')
-rw-r--r--include/wlr/types/wlr_xdg_shell_v6.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/wlr/types/wlr_xdg_shell_v6.h b/include/wlr/types/wlr_xdg_shell_v6.h
index b7acc2c4..408df16a 100644
--- a/include/wlr/types/wlr_xdg_shell_v6.h
+++ b/include/wlr/types/wlr_xdg_shell_v6.h
@@ -2,11 +2,13 @@
#define WLR_TYPES_WLR_XDG_SHELL_V6_H
#include <wlr/types/wlr_box.h>
+#include <wlr/types/wlr_seat.h>
#include <wayland-server.h>
struct wlr_xdg_shell_v6 {
struct wl_global *wl_global;
struct wl_list clients;
+ struct wl_list popup_grabs;
uint32_t ping_timeout;
struct {
@@ -36,6 +38,18 @@ struct wlr_xdg_popup_v6 {
struct wlr_xdg_surface_v6 *parent;
struct wlr_seat *seat;
struct wlr_box geometry;
+
+ struct wl_list grab_link; // wlr_xdg_popup_grab_v6::popups
+};
+
+// each seat gets a popup grab
+struct wlr_xdg_popup_grab_v6 {
+ struct wl_client *client;
+ struct wlr_seat_pointer_grab pointer_grab;
+ struct wlr_seat *seat;
+ struct wl_list popups;
+ struct wl_list link; // wlr_xdg_shell_v6::popup_grabs
+ // TODO: seat_handle destroy will release the grab
};
enum wlr_xdg_surface_v6_role {