X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Futil%2Farea.c;h=827e118a40e7fe41f9cd846e7816bb18487ba560;hb=b4a0127130213dba32519e1b478257228aa4dc10;hp=0e151e28bcf663cbfb3bbf66f7efbaef7fc78014;hpb=9cb781048d0a1cf55f0044e2f9f65ac9a5a241e9;p=chaz%2Ftint2 diff --git a/src/util/area.c b/src/util/area.c index 0e151e2..827e118 100644 --- a/src/util/area.c +++ b/src/util/area.c @@ -43,6 +43,11 @@ void refresh (Area *a) // don't draw transparent objects (without foreground and without background) if (a->redraw) { a->redraw = 0; + // force redraw of child + GSList *l; + for (l = a->list ; l ; l = l->next) + set_redraw(l->data); + //printf("draw area posx %d, width %d\n", a->posx, a->width); draw(a, 0); if (a->use_active) @@ -67,13 +72,16 @@ void size (Area *a) if (a->resize) { a->resize = 0; - for (l = a->list; l ; l = l->next) - size(l->data); + // force the resize of childs + for (l = a->list; l ; l = l->next) { + Area *area = (Area*)l->data; + area->resize = 1; + size(area); + } // resize can generate a redraw - if (a->_resize) { + if (a->_resize) a->_resize(a); - } } }