From c8be7bfc1e0c65730a5bf713e61105cd38bf9f4f Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Fri, 6 Apr 2018 13:57:04 -0400 Subject: Fix another of @orestisf1993's issues --- sway/debug-tree.c | 19 +++++++++++-------- sway/tree/layout.c | 9 ++++++--- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/sway/debug-tree.c b/sway/debug-tree.c index aea6a8b1..00501d9c 100644 --- a/sway/debug-tree.c +++ b/sway/debug-tree.c @@ -38,9 +38,19 @@ static int draw_container(cairo_t *cairo, struct sway_container *container, container_type_to_str(container->type), container->id, container->name, layout_to_str(container->layout), container->width, container->height, container->x, container->y); - cairo_rectangle(cairo, x, y, text_width, text_height); + cairo_rectangle(cairo, x + 2, y, text_width - 2, text_height); cairo_set_source_u32(cairo, 0xFFFFFFE0); cairo_fill(cairo); + int height = text_height; + if (container->children) { + for (int i = 0; i < container->children->length; ++i) { + struct sway_container *child = container->children->items[i]; + height += draw_container(cairo, child, focus, x + 10, y + height); + } + } + cairo_set_source_u32(cairo, 0xFFFFFFE0); + cairo_rectangle(cairo, x, y, 2, height); + cairo_fill(cairo); cairo_move_to(cairo, x, y); if (focus == container) { cairo_set_source_u32(cairo, 0xFF0000FF); @@ -51,13 +61,6 @@ static int draw_container(cairo_t *cairo, struct sway_container *container, container_type_to_str(container->type), container->id, container->name, layout_to_str(container->layout), container->width, container->height, container->x, container->y); - int height = text_height; - if (container->children) { - for (int i = 0; i < container->children->length; ++i) { - struct sway_container *child = container->children->items[i]; - height += draw_container(cairo, child, focus, x + 10, y + height); - } - } return height; } diff --git a/sway/tree/layout.c b/sway/tree/layout.c index f4049c71..b03b80d9 100644 --- a/sway/tree/layout.c +++ b/sway/tree/layout.c @@ -364,8 +364,8 @@ void container_move(struct sway_container *container, return; } } else { - wlr_log(L_DEBUG, "Selecting sibling"); sibling = parent->children->items[index + offs]; + wlr_log(L_DEBUG, "Selecting sibling id:%zd", sibling->id); } } else { wlr_log(L_DEBUG, "Moving up to find a parallel container"); @@ -419,9 +419,12 @@ void container_move(struct sway_container *container, container_remove_child(container); struct sway_container *focus_inactive = seat_get_focus_inactive( config->handler_context.seat, sibling); - wlr_log(L_DEBUG, "Focus inactive: %zd", focus_inactive ? - focus_inactive->id : 0); if (focus_inactive) { + while (focus_inactive->parent != sibling) { + focus_inactive = focus_inactive->parent; + } + wlr_log(L_DEBUG, "Focus inactive: id:%zd", + focus_inactive->id); sibling = focus_inactive; continue; } else if (sibling->children->length) { -- cgit v1.2.3-54-g00ecf