diff --git a/sway/debug-tree.c b/sway/debug-tree.c index 00501d9c1..07c48a257 100644 --- a/sway/debug-tree.c +++ b/sway/debug-tree.c @@ -91,7 +91,7 @@ void update_debug_tree() { break; } - struct sway_container *focus; + struct sway_container *focus = NULL; if (seat != NULL) { focus = seat_get_focus(seat); } diff --git a/sway/tree/layout.c b/sway/tree/layout.c index b03b80d94..7296423bf 100644 --- a/sway/tree/layout.c +++ b/sway/tree/layout.c @@ -250,6 +250,9 @@ static int container_limit(struct sway_container *container, return move_offs(move_dir) < 0 ? 0 : container->children->length - 1; } +/* Takes one child, sets it aside, wraps the rest of the children in a new + * container, switches the layout of the workspace, and drops the child back in. + * In other words, rejigger it. */ static void workspace_rejigger(struct sway_container *ws, struct sway_container *child, enum movement_direction move_dir) { struct sway_container *original_parent = child->parent; @@ -311,8 +314,8 @@ void container_move(struct sway_container *container, sway_dir_to_wlr(move_dir, &wlr_dir); double ref_x = current->x + current->width / 2; double ref_y = current->y + current->height / 2; - ref_x += current->sway_output->wlr_output->lx; - ref_y += current->sway_output->wlr_output->ly; + ref_x += current->sway_output->swayc->x; + ref_y += current->sway_output->swayc->y; struct wlr_output *next = wlr_output_layout_adjacent_output( root_container.sway_root->output_layout, wlr_dir, current->sway_output->wlr_output,