Push Widget ownership up one more level.

This commit is contained in:
2025-04-18 14:08:07 -04:00
parent dceaffe4f7
commit b6c7511997
3 changed files with 7 additions and 7 deletions

View File

@ -733,7 +733,9 @@ FltkComplexButtonResource::FltkComplexButtonResource (FltkPlatform *platform,
flatView = topView = NULL; flatView = topView = NULL;
this->relief = relief; this->relief = relief;
FltkResource::init (platform); FltkResource::init (platform);
ComplexButtonResource::init (widget); std::unique_ptr< dw::core::Widget > widget_unique;
widget_unique.reset( widget );
ComplexButtonResource::init (std::move( widget_unique ));
} }
FltkComplexButtonResource::~FltkComplexButtonResource () FltkComplexButtonResource::~FltkComplexButtonResource ()

View File

@ -340,17 +340,15 @@ ComplexButtonResource::ComplexButtonResource ()
click_x = click_y = -1; click_x = click_y = -1;
} }
void ComplexButtonResource::init (Widget *widget) void ComplexButtonResource::init (std::unique_ptr< Widget > widget)
{ {
childWidget = widget; childWidget = widget.get();
/* FIXME: Buttons should not need a full Layout */ /* FIXME: Buttons should not need a full Layout */
layout = new Layout (createPlatform (), false); layout = new Layout (createPlatform (), false);
setLayout (layout); setLayout (layout);
DBG_OBJ_ASSOC_CHILD (layout); DBG_OBJ_ASSOC_CHILD (layout);
std::unique_ptr< Widget > widget_unique; layout->setWidget (std::move( widget ));
widget_unique.reset( widget );
layout->setWidget (std::move( widget_unique ));
layout->connect (&layoutReceiver); layout->connect (&layoutReceiver);
if (getEmbed ()) if (getEmbed ())

View File

@ -433,7 +433,7 @@ protected:
virtual int reliefXThickness () = 0; virtual int reliefXThickness () = 0;
virtual int reliefYThickness () = 0; virtual int reliefYThickness () = 0;
void init (Widget *widget); void init (std::unique_ptr< Widget > widget);
public: public:
ComplexButtonResource (); ComplexButtonResource ();