aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-04-06 13:57:04 -0400
committerDrew DeVault <sir@cmpwn.com>2018-04-06 13:57:04 -0400
commitc8be7bfc1e0c65730a5bf713e61105cd38bf9f4f (patch)
tree5fa4acddfe3f9d94cb3d641980038a0c9435a637 /sway
parent1f70b94f34813ee997a175e943dabbfec96648a6 (diff)
Fix another of @orestisf1993's issues
Diffstat (limited to 'sway')
-rw-r--r--sway/debug-tree.c19
-rw-r--r--sway/tree/layout.c9
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) {