diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/sway/input/cursor.h | 9 | ||||
-rw-r--r-- | include/sway/input/seat.h | 44 |
2 files changed, 25 insertions, 28 deletions
diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h index 98eb4679..516718c9 100644 --- a/include/sway/input/cursor.h +++ b/include/sway/input/cursor.h | |||
@@ -52,8 +52,6 @@ struct sway_cursor { | |||
52 | struct wl_event_source *hide_source; | 52 | struct wl_event_source *hide_source; |
53 | bool hidden; | 53 | bool hidden; |
54 | 54 | ||
55 | // Mouse binding state | ||
56 | uint32_t pressed_buttons[SWAY_CURSOR_PRESSED_BUTTONS_CAP]; | ||
57 | size_t pressed_button_count; | 55 | size_t pressed_button_count; |
58 | }; | 56 | }; |
59 | 57 | ||
@@ -78,13 +76,6 @@ void cursor_handle_activity(struct sway_cursor *cursor); | |||
78 | void cursor_unhide(struct sway_cursor *cursor); | 76 | void cursor_unhide(struct sway_cursor *cursor); |
79 | int cursor_get_timeout(struct sway_cursor *cursor); | 77 | int cursor_get_timeout(struct sway_cursor *cursor); |
80 | 78 | ||
81 | /** | ||
82 | * Like cursor_rebase, but also allows focus to change when the cursor enters a | ||
83 | * new container. | ||
84 | */ | ||
85 | void cursor_send_pointer_motion(struct sway_cursor *cursor, uint32_t time_msec, | ||
86 | struct sway_node *node, struct wlr_surface *surface, double sx, double sy); | ||
87 | |||
88 | void dispatch_cursor_button(struct sway_cursor *cursor, | 79 | void dispatch_cursor_button(struct sway_cursor *cursor, |
89 | struct wlr_input_device *device, uint32_t time_msec, uint32_t button, | 80 | struct wlr_input_device *device, uint32_t time_msec, uint32_t button, |
90 | enum wlr_button_state state); | 81 | enum wlr_button_state state); |
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index ff4476d1..a5361e8c 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h | |||
@@ -12,12 +12,15 @@ struct sway_seatop_impl { | |||
12 | void (*button)(struct sway_seat *seat, uint32_t time_msec, | 12 | void (*button)(struct sway_seat *seat, uint32_t time_msec, |
13 | struct wlr_input_device *device, uint32_t button, | 13 | struct wlr_input_device *device, uint32_t button, |
14 | enum wlr_button_state state); | 14 | enum wlr_button_state state); |
15 | void (*motion)(struct sway_seat *seat, uint32_t time_msec); | 15 | void (*motion)(struct sway_seat *seat, uint32_t time_msec, |
16 | void (*finish)(struct sway_seat *seat, uint32_t time_msec); | 16 | double dx, double dy); |
17 | void (*abort)(struct sway_seat *seat); | 17 | void (*axis)(struct sway_seat *seat, struct wlr_event_pointer_axis *event); |
18 | void (*rebase)(struct sway_seat *seat, uint32_t time_msec); | ||
19 | void (*end)(struct sway_seat *seat); | ||
18 | void (*unref)(struct sway_seat *seat, struct sway_container *con); | 20 | void (*unref)(struct sway_seat *seat, struct sway_container *con); |
19 | void (*render)(struct sway_seat *seat, struct sway_output *output, | 21 | void (*render)(struct sway_seat *seat, struct sway_output *output, |
20 | pixman_region32_t *damage); | 22 | pixman_region32_t *damage); |
23 | bool allow_set_cursor; | ||
21 | }; | 24 | }; |
22 | 25 | ||
23 | struct sway_seat_device { | 26 | struct sway_seat_device { |
@@ -71,9 +74,7 @@ struct sway_seat { | |||
71 | // Seat operations (drag and resize) | 74 | // Seat operations (drag and resize) |
72 | const struct sway_seatop_impl *seatop_impl; | 75 | const struct sway_seatop_impl *seatop_impl; |
73 | void *seatop_data; | 76 | void *seatop_data; |
74 | uint32_t seatop_button; | ||
75 | 77 | ||
76 | uint32_t last_button; | ||
77 | uint32_t last_button_serial; | 78 | uint32_t last_button_serial; |
78 | 79 | ||
79 | struct wl_listener focus_destroy; | 80 | struct wl_listener focus_destroy; |
@@ -188,23 +189,25 @@ bool seat_is_input_allowed(struct sway_seat *seat, struct wlr_surface *surface); | |||
188 | 189 | ||
189 | void drag_icon_update_position(struct sway_drag_icon *icon); | 190 | void drag_icon_update_position(struct sway_drag_icon *icon); |
190 | 191 | ||
192 | void seatop_begin_default(struct sway_seat *seat); | ||
193 | |||
191 | void seatop_begin_down(struct sway_seat *seat, struct sway_container *con, | 194 | void seatop_begin_down(struct sway_seat *seat, struct sway_container *con, |
192 | uint32_t time_msec, uint32_t button, int sx, int sy); | 195 | uint32_t time_msec, int sx, int sy); |
193 | 196 | ||
194 | void seatop_begin_move_floating(struct sway_seat *seat, | 197 | void seatop_begin_move_floating(struct sway_seat *seat, |
195 | struct sway_container *con, uint32_t button); | 198 | struct sway_container *con); |
196 | 199 | ||
197 | void seatop_begin_move_tiling_threshold(struct sway_seat *seat, | 200 | void seatop_begin_move_tiling_threshold(struct sway_seat *seat, |
198 | struct sway_container *con, uint32_t button); | 201 | struct sway_container *con); |
199 | 202 | ||
200 | void seatop_begin_move_tiling(struct sway_seat *seat, | 203 | void seatop_begin_move_tiling(struct sway_seat *seat, |
201 | struct sway_container *con, uint32_t button); | 204 | struct sway_container *con); |
202 | 205 | ||
203 | void seatop_begin_resize_floating(struct sway_seat *seat, | 206 | void seatop_begin_resize_floating(struct sway_seat *seat, |
204 | struct sway_container *con, uint32_t button, enum wlr_edges edge); | 207 | struct sway_container *con, enum wlr_edges edge); |
205 | 208 | ||
206 | void seatop_begin_resize_tiling(struct sway_seat *seat, | 209 | void seatop_begin_resize_tiling(struct sway_seat *seat, |
207 | struct sway_container *con, uint32_t button, enum wlr_edges edge); | 210 | struct sway_container *con, enum wlr_edges edge); |
208 | 211 | ||
209 | struct sway_container *seat_get_focus_inactive_floating(struct sway_seat *seat, | 212 | struct sway_container *seat_get_focus_inactive_floating(struct sway_seat *seat, |
210 | struct sway_workspace *workspace); | 213 | struct sway_workspace *workspace); |
@@ -214,23 +217,24 @@ void seat_pointer_notify_button(struct sway_seat *seat, uint32_t time_msec, | |||
214 | 217 | ||
215 | void seat_consider_warp_to_focus(struct sway_seat *seat); | 218 | void seat_consider_warp_to_focus(struct sway_seat *seat); |
216 | 219 | ||
217 | bool seat_doing_seatop(struct sway_seat *seat); | ||
218 | |||
219 | void seatop_button(struct sway_seat *seat, uint32_t time_msec, | 220 | void seatop_button(struct sway_seat *seat, uint32_t time_msec, |
220 | struct wlr_input_device *device, uint32_t button, | 221 | struct wlr_input_device *device, uint32_t button, |
221 | enum wlr_button_state state); | 222 | enum wlr_button_state state); |
222 | 223 | ||
223 | void seatop_motion(struct sway_seat *seat, uint32_t time_msec); | ||
224 | |||
225 | /** | 224 | /** |
226 | * End a seatop and apply the affects. | 225 | * dx and dy are distances relative to previous position. |
227 | */ | 226 | */ |
228 | void seatop_finish(struct sway_seat *seat, uint32_t time_msec); | 227 | void seatop_motion(struct sway_seat *seat, uint32_t time_msec, |
228 | double dx, double dy); | ||
229 | |||
230 | void seatop_axis(struct sway_seat *seat, struct wlr_event_pointer_axis *event); | ||
231 | |||
232 | void seatop_rebase(struct sway_seat *seat, uint32_t time_msec); | ||
229 | 233 | ||
230 | /** | 234 | /** |
231 | * End a seatop without applying the affects. | 235 | * End a seatop (ie. free any seatop specific resources). |
232 | */ | 236 | */ |
233 | void seatop_abort(struct sway_seat *seat); | 237 | void seatop_end(struct sway_seat *seat); |
234 | 238 | ||
235 | /** | 239 | /** |
236 | * Instructs the seatop implementation to drop any references to the given | 240 | * Instructs the seatop implementation to drop any references to the given |
@@ -246,4 +250,6 @@ void seatop_unref(struct sway_seat *seat, struct sway_container *con); | |||
246 | void seatop_render(struct sway_seat *seat, struct sway_output *output, | 250 | void seatop_render(struct sway_seat *seat, struct sway_output *output, |
247 | pixman_region32_t *damage); | 251 | pixman_region32_t *damage); |
248 | 252 | ||
253 | bool seatop_allows_set_cursor(struct sway_seat *seat); | ||
254 | |||
249 | #endif | 255 | #endif |