From 40ca9598d269c9b6f162e80b5293f83ec37bb75d Mon Sep 17 00:00:00 2001 From: Federico Angelilli Date: Sat, 16 Mar 2024 15:34:14 +0100 Subject: Refactor and fix a couple leaks --- src/draw.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'src/draw.c') diff --git a/src/draw.c b/src/draw.c index 609d96a..244a472 100644 --- a/src/draw.c +++ b/src/draw.c @@ -202,7 +202,7 @@ static GList *compute_group_layout(Drawer *draw, Window *win, GList *btns, int b layout->x = bx; layout->y = 0; - // TODO: Allow nested groups +retry: if (!btn->simple) { ButtonGroup *group = CAST(btn, ButtonGroup); g_assert_nonnull(group->children); @@ -211,6 +211,7 @@ static GList *compute_group_layout(Drawer *draw, Window *win, GList *btns, int b if (group->children->next == NULL) { layout->btn = btn = group->children->data; g_assert_true(btn->simple); + goto retry; } else { layout->children = compute_group_layout(draw, win, group->children, bx, false); g_assert_nonnull(layout->children); @@ -231,11 +232,7 @@ static GList *compute_group_layout(Drawer *draw, Window *win, GList *btns, int b if (fix_right) layout->width -= 1; } - } - - // NOTE: This check is only apparently redundant because it handles the case where there - // there is only a single children in a group - if (btn->simple) { + } else { layout->pl = pango_cairo_create_layout(window_get_context(win)); layout_set_text(layout, draw->desc, draw->height); } -- cgit v1.2.3