aboutsummaryrefslogtreecommitdiff
path: root/dw/oofpositionedmgr.cc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2014-10-19 00:29:52 +0200
committerSebastian Geerken <devnull@localhost>2014-10-19 00:29:52 +0200
commit356751ca1ee7df3819dfcfcece24cfbdb37fba7c (patch)
tree8cffd8d8235aab30ef267695b8b6bf2bfa191e53 /dw/oofpositionedmgr.cc
parent021d425fea3bdc727328ccbe24f508453a4ada36 (diff)
Changes in drawing process: is now interruptable. (Some errors left.)
Diffstat (limited to 'dw/oofpositionedmgr.cc')
-rw-r--r--dw/oofpositionedmgr.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/dw/oofpositionedmgr.cc b/dw/oofpositionedmgr.cc
index 449ea322..07bc45aa 100644
--- a/dw/oofpositionedmgr.cc
+++ b/dw/oofpositionedmgr.cc
@@ -168,20 +168,26 @@ bool OOFPositionedMgr::haveExtremesChanged ()
}
-void OOFPositionedMgr::draw (View *view, Rectangle *area)
+Widget *OOFPositionedMgr::draw (View *view, Rectangle *area,
+ lout::container::untyped::Stack *iterator,
+ int *index)
{
- DBG_OBJ_ENTER ("draw", 0, "draw", "%d, %d, %d * %d",
- area->x, area->y, area->width, area->height);
+ DBG_OBJ_ENTER ("draw", 0, "draw", "(%d, %d, %d * %d), [%d]",
+ area->x, area->y, area->width, area->height, *index);
- for (int i = 0; i < children->size(); i++) {
- Widget *childWidget = children->get(i)->widget;
+ Widget *retWidget = NULL;
+
+ for (; retWidget == NULL && *index < children->size(); (*index)++) {
+ Widget *childWidget = children->get(*index)->widget;
Rectangle childArea;
if (!StackingContextMgr::handledByStackingContextMgr (childWidget) &&
childWidget->intersects (area, &childArea))
- childWidget->draw (view, &childArea);
+ retWidget = childWidget->drawTotal (view, &childArea, iterator);
}
+ DBG_OBJ_MSGF ("draw", 1, "=> %p", retWidget);
DBG_OBJ_LEAVE ();
+ return retWidget;
}
void OOFPositionedMgr::addWidgetInFlow (OOFAwareWidget *widget,