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 ();