diff --git a/include/nana/gui/widgets/widget.hpp b/include/nana/gui/widgets/widget.hpp index 992a780f..3b6ec2ae 100644 --- a/include/nana/gui/widgets/widget.hpp +++ b/include/nana/gui/widgets/widget.hpp @@ -147,8 +147,6 @@ namespace nana : public widget { public: - ~widget_base(); - window handle() const override; protected: void _m_notify_destroy() override; @@ -172,6 +170,11 @@ namespace nana scheme_{ API::dev::make_scheme() } {} + ~widget_object() + { + API::close_window(handle()); + } + event_type& events() const { return *events_; @@ -255,6 +258,11 @@ namespace nana : events_{ std::make_shared() }, scheme_{ API::dev::make_scheme() } {} + ~widget_object() + { + API::close_window(handle()); + } + event_type& events() const { return *events_; @@ -329,6 +337,11 @@ namespace nana _m_bind_and_attach(); } + ~widget_object() + { + API::close_window(handle()); + } + event_type& events() const { return *events_; @@ -461,6 +474,11 @@ namespace nana : events_{ std::make_shared() }, scheme_{ API::dev::make_scheme() } {} + ~widget_object() + { + API::close_window(handle()); + } + event_type& events() const { return *events_; diff --git a/source/gui/widgets/widget.cpp b/source/gui/widgets/widget.cpp index ac50687b..183768ab 100644 --- a/source/gui/widgets/widget.cpp +++ b/source/gui/widgets/widget.cpp @@ -382,12 +382,6 @@ namespace nana } //class widget_base - widget_base::~widget_base() - { - if (handle_) - API::close_window(handle_); - } - window widget_base::handle() const { return handle_;