diff options
author | Tony Crisci <tony@dubstepdish.com> | 2017-10-06 06:54:43 -0400 |
---|---|---|
committer | Tony Crisci <tony@dubstepdish.com> | 2017-10-06 06:54:43 -0400 |
commit | d3ebf99b0fcadff6b70e6d7e90b956330cefe8a1 (patch) | |
tree | 0ccdee75aaf3ff5bbcbeb96abea296fac3dea796 /include | |
parent | 7b697fe841c7c5167e506f4ce6eed6ee935f69e4 (diff) |
xdg-popup: basic pointer grab
Diffstat (limited to 'include')
-rw-r--r-- | include/wlr/types/wlr_xdg_shell_v6.h | 14 |
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 { |