diff options
author | Sebastian Geerken <devnull@localhost> | 2014-12-13 01:45:55 +0100 |
---|---|---|
committer | Sebastian Geerken <devnull@localhost> | 2014-12-13 01:45:55 +0100 |
commit | 9c6f0f03fd53f7ad7262ca2f7195ee2c299a71f8 (patch) | |
tree | d7ca1f394d563c10b12cce4d9c0506766928e1d1 | |
parent | 0bf2ac762874b0d7b441071d4078ee48211e8382 (diff) |
Fixed drawing and event processing bug related to z-index.
-rw-r--r-- | dw/stackingcontextmgr.cc | 13 |
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 (); } |