summaryrefslogtreecommitdiff
path: root/dw/oofpositionedmgr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dw/oofpositionedmgr.cc')
-rw-r--r--dw/oofpositionedmgr.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/dw/oofpositionedmgr.cc b/dw/oofpositionedmgr.cc
index 8c322333..24a6622a 100644
--- a/dw/oofpositionedmgr.cc
+++ b/dw/oofpositionedmgr.cc
@@ -168,34 +168,32 @@ bool OOFPositionedMgr::haveExtremesChanged ()
}
-Widget *OOFPositionedMgr::draw (View *view, Rectangle *area,
- StackingIteratorStack *iteratorStack,
- int *index)
+void OOFPositionedMgr::draw (View *view, Rectangle *area,
+ StackingIteratorStack *iteratorStack,
+ Widget **interruptedWidget, int *index)
{
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()) {
+ while (*interruptedWidget == NULL && *index < children->size()) {
Child *child = children->get(*index);
Rectangle childArea;
if (!osi->hasWidgetBeenDrawnAfterInterruption (child->widget) &&
!StackingContextMgr::handledByStackingContextMgr (child->widget) &&
child->widget->intersects (area, &childArea))
- retWidget =
- child->widget->drawTotal (view, &childArea, iteratorStack);
+ child->widget->drawTotal (view, &childArea, iteratorStack,
+ interruptedWidget);
- if (retWidget == NULL)
+ if (*interruptedWidget == NULL)
(*index)++;
}
- DBG_OBJ_MSGF ("draw", 1, "=> %p", retWidget);
+ DBG_OBJ_MSGF ("draw", 1, "=> %p", *interruptedWidget);
DBG_OBJ_LEAVE ();
- return retWidget;
}
void OOFPositionedMgr::addWidgetInFlow (OOFAwareWidget *widget,