aboutsummaryrefslogtreecommitdiff
path: root/include/sway
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway')
-rw-r--r--include/sway/commands.h1
-rw-r--r--include/sway/config.h1
-rw-r--r--include/sway/input/seat.h13
-rw-r--r--include/sway/tree/container.h5
-rw-r--r--include/sway/tree/workspace.h2
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