diff --git a/sway/commands/move.c b/sway/commands/move.c index c1d1fade6..959e5bfbf 100644 --- a/sway/commands/move.c +++ b/sway/commands/move.c @@ -311,9 +311,10 @@ static bool container_move_in_direction(struct sway_container *container, // If container is in a split container by itself, move out of the split if (container->parent) { + struct sway_container *old_parent = container->parent; struct sway_container *new_parent = container_flatten(container->parent); - if (new_parent != container->parent) { + if (new_parent != old_parent) { return true; } } diff --git a/sway/desktop/render.c b/sway/desktop/render.c index e698761e0..ee6d13c14 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -372,7 +372,7 @@ static void render_view(struct sway_output *output, pixman_region32_t *damage, container_current_parent_layout(con); if (state->border_right) { - if (con->current.parent && siblings->length == 1 && layout == L_HORIZ) { + if (!container_is_floating(con) && siblings->length == 1 && layout == L_HORIZ) { memcpy(&color, colors->indicator, sizeof(float) * 4); } else { memcpy(&color, colors->child_border, sizeof(float) * 4); @@ -387,7 +387,7 @@ static void render_view(struct sway_output *output, pixman_region32_t *damage, } if (state->border_bottom) { - if (con->current.parent && siblings->length == 1 && layout == L_VERT) { + if (!container_is_floating(con) && siblings->length == 1 && layout == L_VERT) { memcpy(&color, colors->indicator, sizeof(float) * 4); } else { memcpy(&color, colors->child_border, sizeof(float) * 4);