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();
|
~widget_base();
|
||||||
|
|
||||||
window handle() const override;
|
window handle() const override;
|
||||||
private:
|
protected:
|
||||||
void _m_notify_destroy() override final;
|
void _m_notify_destroy() override;
|
||||||
protected:
|
protected:
|
||||||
window handle_{ nullptr };
|
window handle_{ nullptr };
|
||||||
};
|
};
|
||||||
@ -228,6 +228,13 @@ namespace nana
|
|||||||
{
|
{
|
||||||
return *events_;
|
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:
|
private:
|
||||||
DrawerTrigger trigger_;
|
DrawerTrigger trigger_;
|
||||||
std::shared_ptr<Events> events_;
|
std::shared_ptr<Events> events_;
|
||||||
@ -281,6 +288,13 @@ namespace nana
|
|||||||
{
|
{
|
||||||
return *events_;
|
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:
|
private:
|
||||||
std::shared_ptr<Events> events_;
|
std::shared_ptr<Events> events_;
|
||||||
std::unique_ptr<scheme_type> scheme_;
|
std::unique_ptr<scheme_type> scheme_;
|
||||||
@ -415,6 +429,13 @@ namespace nana
|
|||||||
{
|
{
|
||||||
return *events_;
|
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:
|
private:
|
||||||
DrawerTrigger trigger_;
|
DrawerTrigger trigger_;
|
||||||
std::shared_ptr<Events> events_;
|
std::shared_ptr<Events> events_;
|
||||||
|
@ -442,8 +442,6 @@ namespace nana
|
|||||||
|
|
||||||
bool basic_window::set_events(const std::shared_ptr<general_events>& p)
|
bool basic_window::set_events(const std::shared_ptr<general_events>& p)
|
||||||
{
|
{
|
||||||
if (annex.events_ptr)
|
|
||||||
return false;
|
|
||||||
annex.events_ptr = p;
|
annex.events_ptr = p;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user