diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/sway/commands.h | 1 | ||||
-rw-r--r-- | include/sway/config.h | 1 | ||||
-rw-r--r-- | include/sway/input/seat.h | 13 | ||||
-rw-r--r-- | include/sway/tree/container.h | 5 | ||||
-rw-r--r-- | include/sway/tree/workspace.h | 2 |
5 files changed, 18 insertions, 4 deletions
diff --git a/include/sway/commands.h b/include/sway/commands.h index b0b5ed0f..e51b12fd 100644 --- a/include/sway/commands.h +++ b/include/sway/commands.h @@ -161,6 +161,7 @@ sway_cmd cmd_sticky; sway_cmd cmd_swaybg_command; sway_cmd cmd_swaynag_command; sway_cmd cmd_swap; +sway_cmd cmd_tiling_drag; sway_cmd cmd_title_format; sway_cmd cmd_unmark; sway_cmd cmd_urgent; diff --git a/include/sway/config.h b/include/sway/config.h index b52bb681..b53c1f1f 100644 --- a/include/sway/config.h +++ b/include/sway/config.h @@ -365,6 +365,7 @@ struct sway_config { bool validating; bool auto_back_and_forth; bool show_marks; + bool tiling_drag; bool edge_gaps; bool smart_gaps; diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index b07d200d..e006faba 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h @@ -38,7 +38,8 @@ struct sway_drag_icon { enum sway_seat_operation { OP_NONE, OP_DOWN, - OP_MOVE, + 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; @@ -172,8 +176,11 @@ void drag_icon_update_position(struct sway_drag_icon *icon); void seat_begin_down(struct sway_seat *seat, struct sway_container *con, uint32_t button, double sx, double sy); -void seat_begin_move(struct sway_seat *seat, struct sway_container *con, - uint32_t button); +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..5e281a2f 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, bool after); 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 |