Fix crash when ending tiling drag
If the container being dragged has a parent that needs to be reaped, it must be reaped after we've reinserted the dragging container into the tree. During reaping, handle_seat_node_destroy tries to refocus the dragging container which isn't possible while it's detached.
This commit is contained in:
parent
0a4735c50c
commit
9b828939e5
|
@ -1110,9 +1110,6 @@ static void seat_end_move_tiling(struct sway_seat *seat) {
|
|||
int after = edge != WLR_EDGE_TOP && edge != WLR_EDGE_LEFT;
|
||||
|
||||
container_detach(con);
|
||||
if (old_parent) {
|
||||
container_reap_empty(old_parent);
|
||||
}
|
||||
|
||||
// Moving container into empty workspace
|
||||
if (target_node->type == N_WORKSPACE && edge == WLR_EDGE_NONE) {
|
||||
|
@ -1135,6 +1132,10 @@ static void seat_end_move_tiling(struct sway_seat *seat) {
|
|||
workspace_insert_tiling(new_ws, con, after);
|
||||
}
|
||||
|
||||
if (old_parent) {
|
||||
container_reap_empty(old_parent);
|
||||
}
|
||||
|
||||
// This is a bit dirty, but we'll set the dimensions to that of a sibling.
|
||||
// I don't think there's any other way to make it consistent without
|
||||
// changing how we auto-size containers.
|
||||
|
|
Loading…
Reference in a new issue