From cedde21c967ae5be0d1a9c7656ab8c6b3186ae42 Mon Sep 17 00:00:00 2001 From: Las Date: Sat, 26 Jan 2019 00:45:06 +0100 Subject: Implement pointer-constraints-unstable-v1 --- include/sway/input/cursor.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'include/sway/input/cursor.h') diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h index c87d8332..072a56ca 100644 --- a/include/sway/input/cursor.h +++ b/include/sway/input/cursor.h @@ -2,6 +2,7 @@ #define _SWAY_INPUT_CURSOR_H #include #include +#include #include #include "sway/input/seat.h" @@ -26,6 +27,9 @@ struct sway_cursor { struct wlr_surface *image_surface; int hotspot_x, hotspot_y; + struct wlr_pointer_constraint_v1 *active_constraint; + pixman_region32_t confine; // invalid if active_constraint == NULL + struct wl_listener motion; struct wl_listener motion_absolute; struct wl_listener button; @@ -43,6 +47,8 @@ struct sway_cursor { struct wl_listener request_set_cursor; + struct wl_listener constraint_commit; + struct wl_event_source *hide_source; bool hidden; @@ -75,7 +81,8 @@ int cursor_get_timeout(struct sway_cursor *cursor); * Like cursor_rebase, but also allows focus to change when the cursor enters a * new container. */ -void cursor_send_pointer_motion(struct sway_cursor *cursor, uint32_t time_msec); +void cursor_send_pointer_motion(struct sway_cursor *cursor, uint32_t time_msec, + struct sway_node *node, struct wlr_surface *surface, double sx, double sy); void dispatch_cursor_button(struct sway_cursor *cursor, struct wlr_input_device *device, uint32_t time_msec, uint32_t button, @@ -97,6 +104,10 @@ void cursor_warp_to_container(struct sway_cursor *cursor, void cursor_warp_to_workspace(struct sway_cursor *cursor, struct sway_workspace *workspace); + +void sway_cursor_constrain(struct sway_cursor *cursor, + struct wlr_pointer_constraint_v1 *constraint); + uint32_t get_mouse_bindsym(const char *name, char **error); uint32_t get_mouse_bindcode(const char *name, char **error); -- cgit v1.2.3-54-g00ecf