aboutsummaryrefslogtreecommitdiffstats
path: root/include/sway/input/seat.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway/input/seat.h')
-rw-r--r--include/sway/input/seat.h44
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
23struct sway_seat_device { 26struct 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
189void drag_icon_update_position(struct sway_drag_icon *icon); 190void drag_icon_update_position(struct sway_drag_icon *icon);
190 191
192void seatop_begin_default(struct sway_seat *seat);
193
191void seatop_begin_down(struct sway_seat *seat, struct sway_container *con, 194void 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
194void seatop_begin_move_floating(struct sway_seat *seat, 197void seatop_begin_move_floating(struct sway_seat *seat,
195 struct sway_container *con, uint32_t button); 198 struct sway_container *con);
196 199
197void seatop_begin_move_tiling_threshold(struct sway_seat *seat, 200void seatop_begin_move_tiling_threshold(struct sway_seat *seat,
198 struct sway_container *con, uint32_t button); 201 struct sway_container *con);
199 202
200void seatop_begin_move_tiling(struct sway_seat *seat, 203void seatop_begin_move_tiling(struct sway_seat *seat,
201 struct sway_container *con, uint32_t button); 204 struct sway_container *con);
202 205
203void seatop_begin_resize_floating(struct sway_seat *seat, 206void 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
206void seatop_begin_resize_tiling(struct sway_seat *seat, 209void 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
209struct sway_container *seat_get_focus_inactive_floating(struct sway_seat *seat, 212struct 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
215void seat_consider_warp_to_focus(struct sway_seat *seat); 218void seat_consider_warp_to_focus(struct sway_seat *seat);
216 219
217bool seat_doing_seatop(struct sway_seat *seat);
218
219void seatop_button(struct sway_seat *seat, uint32_t time_msec, 220void 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
223void 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 */
228void seatop_finish(struct sway_seat *seat, uint32_t time_msec); 227void seatop_motion(struct sway_seat *seat, uint32_t time_msec,
228 double dx, double dy);
229
230void seatop_axis(struct sway_seat *seat, struct wlr_event_pointer_axis *event);
231
232void 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 */
233void seatop_abort(struct sway_seat *seat); 237void 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);
246void seatop_render(struct sway_seat *seat, struct sway_output *output, 250void seatop_render(struct sway_seat *seat, struct sway_output *output,
247 pixman_region32_t *damage); 251 pixman_region32_t *damage);
248 252
253bool seatop_allows_set_cursor(struct sway_seat *seat);
254
249#endif 255#endif