fix issue that event handler remains after closing
This commit is contained in:
parent
6eece91fce
commit
318f0ec570
@ -150,8 +150,8 @@ namespace nana
|
||||
~widget_base();
|
||||
|
||||
window handle() const override;
|
||||
private:
|
||||
void _m_notify_destroy() override final;
|
||||
protected:
|
||||
void _m_notify_destroy() override;
|
||||
protected:
|
||||
window handle_{ nullptr };
|
||||
};
|
||||
@ -228,6 +228,13 @@ namespace nana
|
||||
{
|
||||
return *events_;
|
||||
}
|
||||
|
||||
void _m_notify_destroy() override final
|
||||
{
|
||||
widget_base::_m_notify_destroy();
|
||||
events_ = std::make_shared<Events>();
|
||||
API::dev::set_events(handle_, events_);
|
||||
}
|
||||
private:
|
||||
DrawerTrigger trigger_;
|
||||
std::shared_ptr<Events> events_;
|
||||
@ -281,6 +288,13 @@ namespace nana
|
||||
{
|
||||
return *events_;
|
||||
}
|
||||
|
||||
void _m_notify_destroy() override final
|
||||
{
|
||||
widget_base::_m_notify_destroy();
|
||||
events_ = std::make_shared<Events>();
|
||||
API::dev::set_events(handle_, events_);
|
||||
}
|
||||
private:
|
||||
std::shared_ptr<Events> events_;
|
||||
std::unique_ptr<scheme_type> scheme_;
|
||||
@ -415,6 +429,13 @@ namespace nana
|
||||
{
|
||||
return *events_;
|
||||
}
|
||||
|
||||
void _m_notify_destroy() override final
|
||||
{
|
||||
widget_base::_m_notify_destroy();
|
||||
events_ = std::make_shared<Events>();
|
||||
API::dev::set_events(handle_, events_);
|
||||
}
|
||||
private:
|
||||
DrawerTrigger trigger_;
|
||||
std::shared_ptr<Events> events_;
|
||||
|
@ -442,8 +442,6 @@ namespace nana
|
||||
|
||||
bool basic_window::set_events(const std::shared_ptr<general_events>& p)
|
||||
{
|
||||
if (annex.events_ptr)
|
||||
return false;
|
||||
annex.events_ptr = p;
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user