diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/sway/commands.h | 2 | ||||
-rw-r--r-- | include/sway/input/seat.h | 16 | ||||
-rw-r--r-- | include/sway/tree/container.h | 12 | ||||
-rw-r--r-- | include/sway/tree/layout.h | 9 |
4 files changed, 34 insertions, 5 deletions
diff --git a/include/sway/commands.h b/include/sway/commands.h index e71a7228..f53d335a 100644 --- a/include/sway/commands.h +++ b/include/sway/commands.h | |||
@@ -106,7 +106,7 @@ sway_cmd cmd_exit; | |||
106 | sway_cmd cmd_floating; | 106 | sway_cmd cmd_floating; |
107 | sway_cmd cmd_floating_maximum_size; | 107 | sway_cmd cmd_floating_maximum_size; |
108 | sway_cmd cmd_floating_minimum_size; | 108 | sway_cmd cmd_floating_minimum_size; |
109 | sway_cmd cmd_floating_mod; | 109 | sway_cmd cmd_floating_modifier; |
110 | sway_cmd cmd_floating_scroll; | 110 | sway_cmd cmd_floating_scroll; |
111 | sway_cmd cmd_focus; | 111 | sway_cmd cmd_focus; |
112 | sway_cmd cmd_focus_follows_mouse; | 112 | sway_cmd cmd_focus_follows_mouse; |
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index eac1626b..be1f3610 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h | |||
@@ -34,6 +34,8 @@ struct sway_drag_icon { | |||
34 | struct wl_listener destroy; | 34 | struct wl_listener destroy; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | enum resize_edge; | ||
38 | |||
37 | struct sway_seat { | 39 | struct sway_seat { |
38 | struct wlr_seat *wlr_seat; | 40 | struct wlr_seat *wlr_seat; |
39 | struct sway_cursor *cursor; | 41 | struct sway_cursor *cursor; |
@@ -52,6 +54,20 @@ struct sway_seat { | |||
52 | int32_t touch_id; | 54 | int32_t touch_id; |
53 | double touch_x, touch_y; | 55 | double touch_x, touch_y; |
54 | 56 | ||
57 | // Operations (drag and resize) | ||
58 | enum { | ||
59 | OP_NONE, | ||
60 | OP_DRAG, | ||
61 | OP_RESIZE, | ||
62 | } operation; | ||
63 | struct sway_container *op_container; | ||
64 | enum resize_edge op_resize_edge; | ||
65 | uint32_t op_button; | ||
66 | bool op_resize_preserve_ratio; | ||
67 | double op_ref_lx, op_ref_ly; // cursor's x/y at start of op | ||
68 | double op_ref_width, op_ref_height; // container's size at start of op | ||
69 | double op_ref_con_lx, op_ref_con_ly; // container's x/y at start of op | ||
70 | |||
55 | struct wl_listener focus_destroy; | 71 | struct wl_listener focus_destroy; |
56 | struct wl_listener new_container; | 72 | struct wl_listener new_container; |
57 | struct wl_listener new_drag_icon; | 73 | struct wl_listener new_drag_icon; |
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h index ca7a3288..59c5b4c7 100644 --- a/include/sway/tree/container.h +++ b/include/sway/tree/container.h | |||
@@ -305,6 +305,12 @@ bool container_is_floating(struct sway_container *container); | |||
305 | void container_get_box(struct sway_container *container, struct wlr_box *box); | 305 | void container_get_box(struct sway_container *container, struct wlr_box *box); |
306 | 306 | ||
307 | /** | 307 | /** |
308 | * Move a floating container by the specified amount. | ||
309 | */ | ||
310 | void container_floating_translate(struct sway_container *con, | ||
311 | double x_amount, double y_amount); | ||
312 | |||
313 | /** | ||
308 | * Move a floating container to a new layout-local position. | 314 | * Move a floating container to a new layout-local position. |
309 | */ | 315 | */ |
310 | void container_floating_move_to(struct sway_container *con, | 316 | void container_floating_move_to(struct sway_container *con, |
@@ -318,4 +324,10 @@ void container_set_dirty(struct sway_container *container); | |||
318 | 324 | ||
319 | bool container_has_urgent_child(struct sway_container *container); | 325 | bool container_has_urgent_child(struct sway_container *container); |
320 | 326 | ||
327 | /** | ||
328 | * If the container is involved in a drag or resize operation via a mouse, this | ||
329 | * ends the operation. | ||
330 | */ | ||
331 | void container_end_mouse_operation(struct sway_container *container); | ||
332 | |||
321 | #endif | 333 | #endif |
diff --git a/include/sway/tree/layout.h b/include/sway/tree/layout.h index ba265623..5a78fd58 100644 --- a/include/sway/tree/layout.h +++ b/include/sway/tree/layout.h | |||
@@ -14,10 +14,11 @@ enum movement_direction { | |||
14 | }; | 14 | }; |
15 | 15 | ||
16 | enum resize_edge { | 16 | enum resize_edge { |
17 | RESIZE_EDGE_LEFT, | 17 | RESIZE_EDGE_NONE = 0, |
18 | RESIZE_EDGE_RIGHT, | 18 | RESIZE_EDGE_LEFT = 1, |
19 | RESIZE_EDGE_TOP, | 19 | RESIZE_EDGE_RIGHT = 2, |
20 | RESIZE_EDGE_BOTTOM, | 20 | RESIZE_EDGE_TOP = 4, |
21 | RESIZE_EDGE_BOTTOM = 8, | ||
21 | }; | 22 | }; |
22 | 23 | ||
23 | struct sway_container; | 24 | struct sway_container; |