diff options
| author | Federico Angelilli <code@fedang.net> | 2024-03-15 00:21:01 +0100 |
|---|---|---|
| committer | Federico Angelilli <code@fedang.net> | 2024-03-15 00:21:18 +0100 |
| commit | 430def6e39315b6cee807aba3e4126134b93b164 (patch) | |
| tree | e400668cb1890c1f338655bd57994dbdbc8ab7cc /src/draw.c | |
| parent | 5765bea99e1d497063ab312d879390b0dd3d2efd (diff) | |
Fix layout animation and animation handler
Diffstat (limited to 'src/draw.c')
| -rw-r--r-- | src/draw.c | 26 |
1 files changed, 14 insertions, 12 deletions
@@ -113,7 +113,7 @@ void draw_paint(Drawer *draw, Window *win) if (!layout->btn->anim->paint_func(layout->btn->anim, cr, layout)) layout->btn->anim->paint_func = NULL; - } else if (layout->btn->anim->paint_func == NULL) { + } else if (layout->btn->anim->layout_func == NULL) { // Remove animation if both paint_func and layout_func finished animation_destroy(layout->btn->anim); layout->btn->anim = NULL; @@ -245,20 +245,22 @@ void draw_compute_layout(Drawer *draw, Window *win, GList *btns) } } - if (btn->anim != NULL && btn->anim->layout_func != NULL) { - if (layout->btn->anim->start == 0) { - layout->btn->anim->start = g_get_monotonic_time(); - log_debug("Starting animation [start=%ld, duration=%ld, button=%p]", - layout->btn->anim->start, layout->btn->anim->duration, layout->btn); - } - - if (!btn->anim->layout_func(btn->anim, layout)) - btn->anim->layout_func = NULL; - } - if (layout->btn->simple) { layout->pl = pango_cairo_create_layout(window_get_context(win)); layout_text(layout, draw->desc, height, radius); + + // TODO: make it work for groups + if (btn->anim != NULL && btn->anim->layout_func != NULL) { + if (btn->anim->start == 0) { + btn->anim->start = g_get_monotonic_time(); + log_debug("Starting animation [type=%d, start=%ld, duration=%ld, button=%p]", + btn->anim->type, btn->anim->start, btn->anim->duration, btn); + } + + if (!btn->anim->layout_func(btn->anim, layout)) + btn->anim->layout_func = NULL; + } + x += layout->width + line_w * 2; layout->width -= 2 * btn->padding; |
