correctly.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31649
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxPopupTransientWindow::~wxPopupTransientWindow()
{
PopHandlers();
wxPopupTransientWindow::~wxPopupTransientWindow()
{
PopHandlers();
-
- delete m_handlerFocus;
- delete m_handlerPopup;
}
void wxPopupTransientWindow::PopHandlers()
{
if ( m_child )
{
}
void wxPopupTransientWindow::PopHandlers()
{
if ( m_child )
{
- if ( !m_child->RemoveEventHandler(m_handlerPopup) )
+ if ( m_handlerPopup && !m_child->RemoveEventHandler(m_handlerPopup) )
{
// something is very wrong and someone else probably deleted our
// handler - so don't risk deleting it second time
{
// something is very wrong and someone else probably deleted our
// handler - so don't risk deleting it second time
#ifdef __WXMSW__
if ( m_focus )
{
#ifdef __WXMSW__
if ( m_focus )
{
- if ( !m_focus->RemoveEventHandler(m_handlerFocus) )
+ if ( m_handlerFocus && !m_focus->RemoveEventHandler(m_handlerFocus) )
{
// see above
m_handlerFocus = NULL;
}
}
#else
{
// see above
m_handlerFocus = NULL;
}
}
#else
- if ( !RemoveEventHandler(m_handlerFocus) )
+ if ( m_handlerFocus && !RemoveEventHandler(m_handlerFocus) )
{
// see above
m_handlerFocus = NULL;
}
#endif
{
// see above
m_handlerFocus = NULL;
}
#endif
+
+ // delete the handlers, they'll be created as necessary in Popup()
+ delete m_handlerPopup;
+ m_handlerPopup = NULL;
+ delete m_handlerFocus;
+ m_handlerFocus = NULL;
+