diff options
author | Sebastian Geerken <devnull@localhost> | 2014-10-23 13:56:47 +0200 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2014-10-23 13:56:47 +0200 |
commit | 9eaaa3b90cba69593ab664b552ac5f5e4a299140 (patch) | |
tree | 2fbd8ad2bad2dca3dfb45b64db3bb123f3954c4d /dw/oofpositionedmgr.cc | |
parent | 8b633a44f51ecdda001addb99f2474f688920065 (diff) |
Fixed drawing of widgets previously (possibly) drawn after interruption.
Diffstat (limited to 'dw/oofpositionedmgr.cc')
-rw-r--r-- | dw/oofpositionedmgr.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/dw/oofpositionedmgr.cc b/dw/oofpositionedmgr.cc index c0c31417..8c322333 100644 --- a/dw/oofpositionedmgr.cc +++ b/dw/oofpositionedmgr.cc @@ -175,19 +175,19 @@ Widget *OOFPositionedMgr::draw (View *view, Rectangle *area, DBG_OBJ_ENTER ("draw", 0, "draw", "(%d, %d, %d * %d), [%d]", area->x, area->y, area->width, area->height, *index); + OOFAwareWidget::OOFStackingIterator *osi = + (OOFAwareWidget::OOFStackingIterator*)iteratorStack->getTop (); Widget *retWidget = NULL; while (retWidget == NULL && *index < children->size()) { Child *child = children->get(*index); - if (!OOFAwareWidget:: doesWidgetOOFInterruptDrawing - (child->widget, child->generator, container)) { - Rectangle childArea; - if (!StackingContextMgr::handledByStackingContextMgr (child->widget) && - child->widget->intersects (area, &childArea)) - retWidget = - child->widget->drawTotal (view, &childArea, iteratorStack); - } + Rectangle childArea; + if (!osi->hasWidgetBeenDrawnAfterInterruption (child->widget) && + !StackingContextMgr::handledByStackingContextMgr (child->widget) && + child->widget->intersects (area, &childArea)) + retWidget = + child->widget->drawTotal (view, &childArea, iteratorStack); if (retWidget == NULL) (*index)++; |