aboutsummaryrefslogtreecommitdiffstats
path: root/include/sway
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-11 21:34:21 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-09-11 21:34:21 +1000
commit8bb40c24c7b045df0d43e9f22c096d1473f6f9f6 (patch)
tree0c4dbac1173f92337e2cff63d45c7d8fe7a3557f /include/sway
parentIntroduce tiling_drag directive (diff)
downloadsway-8bb40c24c7b045df0d43e9f22c096d1473f6f9f6.tar.gz
sway-8bb40c24c7b045df0d43e9f22c096d1473f6f9f6.tar.zst
sway-8bb40c24c7b045df0d43e9f22c096d1473f6f9f6.zip
Implement tiling drag
Hold floating_modifier and drag a tiling view to a new location.
Diffstat (limited to 'include/sway')
-rw-r--r--include/sway/input/seat.h7
-rw-r--r--include/sway/tree/container.h5
-rw-r--r--include/sway/tree/workspace.h2
3 files changed, 13 insertions, 1 deletions
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index 1ae34be5..e006faba 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -39,6 +39,7 @@ enum sway_seat_operation {
39 OP_NONE, 39 OP_NONE,
40 OP_DOWN, 40 OP_DOWN,
41 OP_MOVE_FLOATING, 41 OP_MOVE_FLOATING,
42 OP_MOVE_TILING,
42 OP_RESIZE_FLOATING, 43 OP_RESIZE_FLOATING,
43 OP_RESIZE_TILING, 44 OP_RESIZE_TILING,
44}; 45};
@@ -64,6 +65,9 @@ struct sway_seat {
64 // Operations (drag and resize) 65 // Operations (drag and resize)
65 enum sway_seat_operation operation; 66 enum sway_seat_operation operation;
66 struct sway_container *op_container; 67 struct sway_container *op_container;
68 struct sway_node *op_target_node; // target for tiling move
69 enum wlr_edges op_target_edge;
70 struct wlr_box op_drop_box;
67 enum wlr_edges op_resize_edge; 71 enum wlr_edges op_resize_edge;
68 uint32_t op_button; 72 uint32_t op_button;
69 bool op_resize_preserve_ratio; 73 bool op_resize_preserve_ratio;
@@ -175,6 +179,9 @@ void seat_begin_down(struct sway_seat *seat, struct sway_container *con,
175void seat_begin_move_floating(struct sway_seat *seat, 179void seat_begin_move_floating(struct sway_seat *seat,
176 struct sway_container *con, uint32_t button); 180 struct sway_container *con, uint32_t button);
177 181
182void seat_begin_move_tiling(struct sway_seat *seat,
183 struct sway_container *con, uint32_t button);
184
178void seat_begin_resize_floating(struct sway_seat *seat, 185void seat_begin_resize_floating(struct sway_seat *seat,
179 struct sway_container *con, uint32_t button, enum wlr_edges edge); 186 struct sway_container *con, uint32_t button, enum wlr_edges edge);
180 187
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index 2735daa3..94d30ced 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -279,8 +279,11 @@ void container_add_child(struct sway_container *parent,
279void container_insert_child(struct sway_container *parent, 279void container_insert_child(struct sway_container *parent,
280 struct sway_container *child, int i); 280 struct sway_container *child, int i);
281 281
282/**
283 * Side should be 0 to add before, or 1 to add after.
284 */
282void container_add_sibling(struct sway_container *parent, 285void container_add_sibling(struct sway_container *parent,
283 struct sway_container *child); 286 struct sway_container *child, int side);
284 287
285void container_detach(struct sway_container *child); 288void container_detach(struct sway_container *child);
286 289
diff --git a/include/sway/tree/workspace.h b/include/sway/tree/workspace.h
index af9a071a..e4b616d1 100644
--- a/include/sway/tree/workspace.h
+++ b/include/sway/tree/workspace.h
@@ -126,4 +126,6 @@ void workspace_update_representation(struct sway_workspace *ws);
126 126
127void workspace_get_box(struct sway_workspace *workspace, struct wlr_box *box); 127void workspace_get_box(struct sway_workspace *workspace, struct wlr_box *box);
128 128
129size_t workspace_num_tiling_views(struct sway_workspace *ws);
130
129#endif 131#endif