summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2014-12-13 01:45:55 +0100
committerSebastian Geerken <devnull@localhost>2014-12-13 01:45:55 +0100
commit9c6f0f03fd53f7ad7262ca2f7195ee2c299a71f8 (patch)
treed7ca1f394d563c10b12cce4d9c0506766928e1d1
parent0bf2ac762874b0d7b441071d4078ee48211e8382 (diff)
Fixed drawing and event processing bug related to z-index.
-rw-r--r--dw/stackingcontextmgr.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/dw/stackingcontextmgr.cc b/dw/stackingcontextmgr.cc
index cbdef129..e7a53fe3 100644
--- a/dw/stackingcontextmgr.cc
+++ b/dw/stackingcontextmgr.cc
@@ -38,6 +38,8 @@ StackingContextMgr::StackingContextMgr (Widget *widget)
DBG_OBJ_SET_NUM ("childSCWidgets.size", childSCWidgets->size());
minZIndex = maxZIndex = 0; // Just to have some defined values.
+ DBG_OBJ_SET_NUM ("minZIndex", minZIndex);
+ DBG_OBJ_SET_NUM ("maxZIndex", maxZIndex);
}
StackingContextMgr::~StackingContextMgr ()
@@ -55,6 +57,9 @@ void StackingContextMgr::addChildSCWidget (Widget *widget)
maxZIndex = max (maxZIndex, widget->getStyle()->zIndex);
}
+ DBG_OBJ_SET_NUM ("minZIndex", minZIndex);
+ DBG_OBJ_SET_NUM ("maxZIndex", maxZIndex);
+
childSCWidgets->put (widget);
DBG_OBJ_SET_NUM ("childSCWidgets.size", childSCWidgets->size());
DBG_OBJ_ARRSET_PTR ("childSCWidgets", childSCWidgets->size() - 1, widget);
@@ -123,8 +128,10 @@ void StackingContextMgr::draw (View *view, Rectangle *area,
(*index)++;
}
- if (*interruptedWidget == NULL)
+ if (*interruptedWidget == NULL) {
(*zIndexOffset)++;
+ *index = 0;
+ }
DBG_OBJ_MSG_END ();
}
@@ -199,8 +206,10 @@ Widget *StackingContextMgr::getWidgetAtPoint (int x, int y,
(*index)--;
}
- if (*interruptedWidget == NULL)
+ if (*interruptedWidget == NULL) {
(*zIndexOffset)--;
+ *index = childSCWidgets->size () - 1;
+ }
DBG_OBJ_MSG_END ();
}