Put some ownership on a vector.

This commit is contained in:
2025-04-18 16:09:46 -04:00
parent 12812814d4
commit b1854e8db8
3 changed files with 8 additions and 13 deletions

View File

@ -262,8 +262,6 @@ Layout::Layout (Platform *platform, bool limit)
topLevel = NULL; topLevel = NULL;
widgetAtPoint = NULL; widgetAtPoint = NULL;
queueResizeList = new typed::Vector<Widget> (4, false);
DBG_OBJ_CREATE ("dw::core::Layout"); DBG_OBJ_CREATE ("dw::core::Layout");
bgColor = NULL; bgColor = NULL;
@ -331,7 +329,6 @@ Layout::~Layout ()
topLevel.reset(); topLevel.reset();
} }
delete queueResizeList;
delete platform; delete platform;
delete view; delete view;
delete textZone; delete textZone;
@ -383,7 +380,7 @@ void Layout::addWidget (std::unique_ptr< Widget > widget)
widget_p->container = NULL; widget_p->container = NULL;
DBG_OBJ_SET_PTR_O (widget_p, "container", widget_p->container); DBG_OBJ_SET_PTR_O (widget_p, "container", widget_p->container);
queueResizeList->clear (); queueResizeList.clear ();
widget_p->notifySetAsTopLevel (); widget_p->notifySetAsTopLevel ();
findtextState.setWidget (widget_p); findtextState.setWidget (widget_p);
@ -404,7 +401,7 @@ void Layout::removeWidget ()
* \bug Some more attributes must be reset here. * \bug Some more attributes must be reset here.
*/ */
topLevel = NULL; topLevel = NULL;
queueResizeList->clear (); queueResizeList.clear ();
widgetAtPoint = NULL; widgetAtPoint = NULL;
canvasWidth = canvasAscent = canvasDescent = 0; canvasWidth = canvasAscent = canvasDescent = 0;
scrollX = scrollY = 0; scrollX = scrollY = 0;
@ -887,10 +884,7 @@ void Layout::resizeIdle ()
resizeCounter++; resizeCounter++;
for (typed::Iterator <Widget> it = queueResizeList->iterator(); for( auto &widget: queueResizeList ) {
it.hasNext (); ) {
Widget *widget = it.getNext ();
if (widget->resizeQueued ()) { if (widget->resizeQueued ()) {
widget->setFlags (Widget::NEEDS_RESIZE); widget->setFlags (Widget::NEEDS_RESIZE);
widget->unsetFlags (Widget::RESIZE_QUEUED); widget->unsetFlags (Widget::RESIZE_QUEUED);
@ -906,7 +900,7 @@ void Layout::resizeIdle ()
widget->unsetFlags (Widget::EXTREMES_QUEUED); widget->unsetFlags (Widget::EXTREMES_QUEUED);
} }
} }
queueResizeList->clear (); queueResizeList.clear ();
// Reset here, since below, queueResize() may be called again. // Reset here, since below, queueResize() may be called again.
resizeIdleId = -1; resizeIdleId = -1;

View File

@ -7,6 +7,7 @@
#include <memory> #include <memory>
#include <string> #include <string>
#include <vector>
#include <unordered_map> #include <unordered_map>
namespace dw { namespace dw {
@ -160,7 +161,7 @@ private:
View *view; View *view;
std::unique_ptr< Widget > topLevel; std::unique_ptr< Widget > topLevel;
Widget *widgetAtPoint; Widget *widgetAtPoint;
lout::container::typed::Vector<Widget> *queueResizeList; std::vector< Widget * > queueResizeList;
/* The state, which must be projected into the view. */ /* The state, which must be projected into the view. */
style::Color *bgColor; style::Color *bgColor;

View File

@ -333,7 +333,7 @@ void Widget::queueResize (int ref, bool extremesChanged, bool fast)
if (layout) { if (layout) {
// If RESIZE_QUEUED is set, this widget is already in the list. // If RESIZE_QUEUED is set, this widget is already in the list.
if (!resizeQueued ()) if (!resizeQueued ())
layout->queueResizeList->put (this); layout->queueResizeList.push_back (this);
resizeFlag = RESIZE_QUEUED; resizeFlag = RESIZE_QUEUED;
extremesFlag = EXTREMES_QUEUED; extremesFlag = EXTREMES_QUEUED;
@ -372,7 +372,7 @@ void Widget::queueResize (int ref, bool extremesChanged, bool fast)
for (widget2 = parent, child = this; widget2; for (widget2 = parent, child = this; widget2;
child = widget2, widget2 = widget2->parent) { child = widget2, widget2 = widget2->parent) {
if (layout && !widget2->resizeQueued ()) 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", DBG_OBJ_MSGF ("resize", 2, "setting %s and ALLOCATE_QUEUED for %p",
resizeFlag == RESIZE_QUEUED ? resizeFlag == RESIZE_QUEUED ?