diff --git a/dw/layout.cc b/dw/layout.cc index 3337bab..ca33285 100644 --- a/dw/layout.cc +++ b/dw/layout.cc @@ -262,8 +262,6 @@ Layout::Layout (Platform *platform, bool limit) topLevel = NULL; widgetAtPoint = NULL; - queueResizeList = new typed::Vector (4, false); - DBG_OBJ_CREATE ("dw::core::Layout"); bgColor = NULL; @@ -331,7 +329,6 @@ Layout::~Layout () topLevel.reset(); } - delete queueResizeList; delete platform; delete view; delete textZone; @@ -383,7 +380,7 @@ void Layout::addWidget (std::unique_ptr< Widget > widget) widget_p->container = NULL; DBG_OBJ_SET_PTR_O (widget_p, "container", widget_p->container); - queueResizeList->clear (); + queueResizeList.clear (); widget_p->notifySetAsTopLevel (); findtextState.setWidget (widget_p); @@ -404,7 +401,7 @@ void Layout::removeWidget () * \bug Some more attributes must be reset here. */ topLevel = NULL; - queueResizeList->clear (); + queueResizeList.clear (); widgetAtPoint = NULL; canvasWidth = canvasAscent = canvasDescent = 0; scrollX = scrollY = 0; @@ -887,10 +884,7 @@ void Layout::resizeIdle () resizeCounter++; - for (typed::Iterator it = queueResizeList->iterator(); - it.hasNext (); ) { - Widget *widget = it.getNext (); - + for( auto &widget: queueResizeList ) { if (widget->resizeQueued ()) { widget->setFlags (Widget::NEEDS_RESIZE); widget->unsetFlags (Widget::RESIZE_QUEUED); @@ -906,7 +900,7 @@ void Layout::resizeIdle () widget->unsetFlags (Widget::EXTREMES_QUEUED); } } - queueResizeList->clear (); + queueResizeList.clear (); // Reset here, since below, queueResize() may be called again. resizeIdleId = -1; diff --git a/dw/layout.hh b/dw/layout.hh index 4f24c49..5fa549d 100644 --- a/dw/layout.hh +++ b/dw/layout.hh @@ -7,6 +7,7 @@ #include #include +#include #include namespace dw { @@ -160,7 +161,7 @@ private: View *view; std::unique_ptr< Widget > topLevel; Widget *widgetAtPoint; - lout::container::typed::Vector *queueResizeList; + std::vector< Widget * > queueResizeList; /* The state, which must be projected into the view. */ style::Color *bgColor; diff --git a/dw/widget.cc b/dw/widget.cc index 8874f70..8eda39e 100644 --- a/dw/widget.cc +++ b/dw/widget.cc @@ -333,7 +333,7 @@ void Widget::queueResize (int ref, bool extremesChanged, bool fast) if (layout) { // If RESIZE_QUEUED is set, this widget is already in the list. if (!resizeQueued ()) - layout->queueResizeList->put (this); + layout->queueResizeList.push_back (this); resizeFlag = RESIZE_QUEUED; extremesFlag = EXTREMES_QUEUED; @@ -372,7 +372,7 @@ void Widget::queueResize (int ref, bool extremesChanged, bool fast) for (widget2 = parent, child = this; widget2; child = widget2, widget2 = widget2->parent) { if (layout && !widget2->resizeQueued ()) - layout->queueResizeList->put (widget2); + layout->queueResizeList.push_back (widget2); DBG_OBJ_MSGF ("resize", 2, "setting %s and ALLOCATE_QUEUED for %p", resizeFlag == RESIZE_QUEUED ?