From 5bf4daf2634929e7c94a6c7e56eda66d4667ca2f Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Tue, 1 Jan 2019 08:45:21 -0500 Subject: Implement tiling_drag_threshold Implements `tiling_drag_threshold ` to prevent accidental dragging of tiling containers. If a container (and all of its descendants) are unfocused and the tile bar is pressed, a threshold will be used before actually starting the drag. Once the threshold has been exceeded, the cursor will change to the grab icon and the operation will switch from `OP_MOVE_TILING_THRESHOLD` to `OP_MOVE_TILING`. --- include/sway/commands.h | 1 + include/sway/config.h | 2 ++ include/sway/input/seat.h | 4 ++++ 3 files changed, 7 insertions(+) (limited to 'include') diff --git a/include/sway/commands.h b/include/sway/commands.h index 0e2d7931..7d0ff838 100644 --- a/include/sway/commands.h +++ b/include/sway/commands.h @@ -172,6 +172,7 @@ sway_cmd cmd_swaybg_command; sway_cmd cmd_swaynag_command; sway_cmd cmd_swap; sway_cmd cmd_tiling_drag; +sway_cmd cmd_tiling_drag_threshold; sway_cmd cmd_title_align; sway_cmd cmd_title_format; sway_cmd cmd_titlebar_border_thickness; diff --git a/include/sway/config.h b/include/sway/config.h index f604b054..ebf16e6a 100644 --- a/include/sway/config.h +++ b/include/sway/config.h @@ -426,7 +426,9 @@ struct sway_config { bool auto_back_and_forth; bool show_marks; enum alignment title_align; + bool tiling_drag; + int tiling_drag_threshold; bool smart_gaps; int gaps_inner; diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index d665c86e..a3c20346 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_THRESHOLD, OP_MOVE_TILING, OP_RESIZE_FLOATING, OP_RESIZE_TILING, @@ -186,6 +187,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_threshold(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); -- cgit v1.2.3-54-g00ecf