From b6c7511997287c4bf3fde2223a253eb3f816379e68c4902019813968a8a9ba76 Mon Sep 17 00:00:00 2001 From: ADAM David Alan Martin Date: Fri, 18 Apr 2025 14:08:07 -0400 Subject: [PATCH] Push Widget ownership up one more level. --- dw/fltkui.cc | 4 +++- dw/ui.cc | 8 +++----- dw/ui.hh | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dw/fltkui.cc b/dw/fltkui.cc index 42926a2..c8baa44 100644 --- a/dw/fltkui.cc +++ b/dw/fltkui.cc @@ -733,7 +733,9 @@ FltkComplexButtonResource::FltkComplexButtonResource (FltkPlatform *platform, flatView = topView = NULL; this->relief = relief; 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 () diff --git a/dw/ui.cc b/dw/ui.cc index cba694d..3364cc4 100644 --- a/dw/ui.cc +++ b/dw/ui.cc @@ -340,17 +340,15 @@ ComplexButtonResource::ComplexButtonResource () 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 */ layout = new Layout (createPlatform (), false); setLayout (layout); DBG_OBJ_ASSOC_CHILD (layout); - std::unique_ptr< Widget > widget_unique; - widget_unique.reset( widget ); - layout->setWidget (std::move( widget_unique )); + layout->setWidget (std::move( widget )); layout->connect (&layoutReceiver); if (getEmbed ()) diff --git a/dw/ui.hh b/dw/ui.hh index f7d0e5b..bae84ca 100644 --- a/dw/ui.hh +++ b/dw/ui.hh @@ -433,7 +433,7 @@ protected: virtual int reliefXThickness () = 0; virtual int reliefYThickness () = 0; - void init (Widget *widget); + void init (std::unique_ptr< Widget > widget); public: ComplexButtonResource ();