+ else {
+ if (pos != child->posy) {
+ // pos changed => redraw
+ child->posy = pos;
+ child->redraw = 1;
+ }
+ }
+ //printf("level %d, object %d, pos %d\n", level, i, pos);
+
+ size_by_layout(child, pos, level+1);
+
+ if (panel_horizontal)
+ pos += child->width + a->paddingx;
+ else
+ pos += child->height + a->paddingx;
+ }
+}
+
+
+void refresh (Area *a)
+{
+ // don't draw and resize hide objects
+ if (!a->on_screen) return;
+
+ // 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)
+ ((Area*)l->data)->redraw = 1;
+// set_redraw(l->data);
+
+ //printf("draw area posx %d, width %d\n", a->posx, a->width);
+ draw(a);