diff options
Diffstat (limited to 'include/sway/input/seat.h')
-rw-r--r-- | include/sway/input/seat.h | 44 |
1 files changed, 25 insertions, 19 deletions
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 |