From 8bb40c24c7b045df0d43e9f22c096d1473f6f9f6 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 11 Sep 2018 21:34:21 +1000 Subject: Implement tiling drag Hold floating_modifier and drag a tiling view to a new location. --- include/sway/input/seat.h | 7 +++++++ include/sway/tree/container.h | 5 ++++- include/sway/tree/workspace.h | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) (limited to 'include/sway') 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 { OP_NONE, OP_DOWN, OP_MOVE_FLOATING, + OP_MOVE_TILING, OP_RESIZE_FLOATING, OP_RESIZE_TILING, }; @@ -64,6 +65,9 @@ struct sway_seat { // Operations (drag and resize) enum sway_seat_operation operation; struct sway_container *op_container; + struct sway_node *op_target_node; // target for tiling move + enum wlr_edges op_target_edge; + struct wlr_box op_drop_box; enum wlr_edges op_resize_edge; uint32_t op_button; bool op_resize_preserve_ratio; @@ -175,6 +179,9 @@ void seat_begin_down(struct sway_seat *seat, struct sway_container *con, void seat_begin_move_floating(struct sway_seat *seat, struct sway_container *con, uint32_t button); +void seat_begin_move_tiling(struct sway_seat *seat, + struct sway_container *con, uint32_t button); + void seat_begin_resize_floating(struct sway_seat *seat, struct sway_container *con, uint32_t button, enum wlr_edges edge); 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, void container_insert_child(struct sway_container *parent, struct sway_container *child, int i); +/** + * Side should be 0 to add before, or 1 to add after. + */ void container_add_sibling(struct sway_container *parent, - struct sway_container *child); + struct sway_container *child, int side); void container_detach(struct sway_container *child); 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); void workspace_get_box(struct sway_workspace *workspace, struct wlr_box *box); +size_t workspace_num_tiling_views(struct sway_workspace *ws); + #endif -- cgit v1.2.3-54-g00ecf