aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input/seatop_move_tiling.c
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-02-13 22:38:30 -0500
committerLibravatar emersion <contact@emersion.fr>2019-02-14 14:07:13 +0100
commite8c472aee95ce1cbb6feef04d970327d1717d7fc (patch)
treeedee4245963c7a56aec24ee35197d96e59c95cd5 /sway/input/seatop_move_tiling.c
parentseat: allow tree focus changes while layer focused (diff)
downloadsway-e8c472aee95ce1cbb6feef04d970327d1717d7fc.tar.gz
sway-e8c472aee95ce1cbb6feef04d970327d1717d7fc.tar.zst
sway-e8c472aee95ce1cbb6feef04d970327d1717d7fc.zip
seatop_move_tiling: do not move to descendant
In seatop_move_tiling, it is possible to cause a stack overflow by dragging a container into one of its descendants. This disables the ability to move into a descendant.
Diffstat (limited to 'sway/input/seatop_move_tiling.c')
-rw-r--r--sway/input/seatop_move_tiling.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sway/input/seatop_move_tiling.c b/sway/input/seatop_move_tiling.c
index 422a4aa2..1e548f5a 100644
--- a/sway/input/seatop_move_tiling.c
+++ b/sway/input/seatop_move_tiling.c
@@ -164,7 +164,8 @@ static void handle_motion_postthreshold(struct sway_seat *seat) {
164 164
165 // Use the hovered view - but we must be over the actual surface 165 // Use the hovered view - but we must be over the actual surface
166 con = node->sway_container; 166 con = node->sway_container;
167 if (!con->view->surface || node == &e->con->node) { 167 if (!con->view->surface || node == &e->con->node
168 || node_has_ancestor(node, &e->con->node)) {
168 e->target_node = NULL; 169 e->target_node = NULL;
169 e->target_edge = WLR_EDGE_NONE; 170 e->target_edge = WLR_EDGE_NONE;
170 return; 171 return;