diff options
-rw-r--r-- | src/bdm.c | 23 | ||||
-rw-r--r-- | src/bdm.h | 4 |
2 files changed, 18 insertions, 9 deletions
@@ -55,17 +55,22 @@ static void updateWidgets(cairo_t * cr,ScreenArea * area) for (widget=widgetList->head;widget;widget=widget->next) { widget->updateWidget(); - for (image = widget->getImages(); image; image = image->next) + if (widget->attrib->needsPainting) { - renderImage(cr,image,area); - } - // DO TEXT - /* - for (text = widget->getText(); text; text=text->next) - { - renderText(cr,text,area); + for (image = widget->getImages(); image; image = image->next) + { + if (image->attrib->needsPainting) + renderImage(cr,image,area); + } + // DO TEXT + /* + for (text = widget->getText(); text; text=text->next) + { + if (text->attrib->needsPainting) + renderText(cr,text,area); + } + */ } - */ } } @@ -74,6 +74,8 @@ typedef struct _BDMPaintAttribs double xrot; int alpha; + + int needsPainting; } BDMPaintAttribs; typedef struct _BDMImage BDMImage; @@ -128,6 +130,8 @@ struct _BDMWidget BDMPaintAttribs * attrib; BDMImage * images; BDMText * text; + BDMWidget * next; + BDMWidget * prev; BDMWidgetInitProc initWidget; BDMWidgetFiniProc finiWidget; |