fix wrong order of widget deletion

This commit is contained in:
Jinhao
2016-09-24 08:15:44 +08:00
parent 8dccccc420
commit 0e6ea35858
2 changed files with 20 additions and 8 deletions

View File

@@ -147,8 +147,6 @@ namespace nana
: public widget : public widget
{ {
public: public:
~widget_base();
window handle() const override; window handle() const override;
protected: protected:
void _m_notify_destroy() override; void _m_notify_destroy() override;
@@ -172,6 +170,11 @@ namespace nana
scheme_{ API::dev::make_scheme<Scheme>() } scheme_{ API::dev::make_scheme<Scheme>() }
{} {}
~widget_object()
{
API::close_window(handle());
}
event_type& events() const event_type& events() const
{ {
return *events_; return *events_;
@@ -255,6 +258,11 @@ namespace nana
: events_{ std::make_shared<Events>() }, scheme_{ API::dev::make_scheme<scheme_type>() } : events_{ std::make_shared<Events>() }, scheme_{ API::dev::make_scheme<scheme_type>() }
{} {}
~widget_object()
{
API::close_window(handle());
}
event_type& events() const event_type& events() const
{ {
return *events_; return *events_;
@@ -329,6 +337,11 @@ namespace nana
_m_bind_and_attach(); _m_bind_and_attach();
} }
~widget_object()
{
API::close_window(handle());
}
event_type& events() const event_type& events() const
{ {
return *events_; return *events_;
@@ -461,6 +474,11 @@ namespace nana
: events_{ std::make_shared<Events>() }, scheme_{ API::dev::make_scheme<scheme_type>() } : events_{ std::make_shared<Events>() }, scheme_{ API::dev::make_scheme<scheme_type>() }
{} {}
~widget_object()
{
API::close_window(handle());
}
event_type& events() const event_type& events() const
{ {
return *events_; return *events_;

View File

@@ -382,12 +382,6 @@ namespace nana
} }
//class widget_base //class widget_base
widget_base::~widget_base()
{
if (handle_)
API::close_window(handle_);
}
window widget_base::handle() const window widget_base::handle() const
{ {
return handle_; return handle_;