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_base();
window handle() const override;
protected:
void _m_notify_destroy() override;
@ -172,6 +170,11 @@ namespace nana
scheme_{ API::dev::make_scheme<Scheme>() }
{}
~widget_object()
{
API::close_window(handle());
}
event_type& events() const
{
return *events_;
@ -255,6 +258,11 @@ namespace nana
: events_{ std::make_shared<Events>() }, scheme_{ API::dev::make_scheme<scheme_type>() }
{}
~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<Events>() }, scheme_{ API::dev::make_scheme<scheme_type>() }
{}
~widget_object()
{
API::close_window(handle());
}
event_type& events() const
{
return *events_;

View File

@ -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_;