From b5f3d8e93431a2d38dda003400163d431a643b05 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 17 Feb 2009 16:43:10 +0000 Subject: [PATCH] don't skip the event in wxGridCellEditorEvtHandler::OnKillFocus() to fix crashes which happen if the control receiving this event gets deleted from it git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/grideditors.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/generic/grideditors.cpp b/src/generic/grideditors.cpp index 997626c10e..1ece439bf7 100644 --- a/src/generic/grideditors.cpp +++ b/src/generic/grideditors.cpp @@ -70,13 +70,20 @@ void wxGridCellEditorEvtHandler::OnKillFocus(wxFocusEvent& event) { // Don't disable the cell if we're just starting to edit it - if (m_inSetFocus) + if ( m_inSetFocus ) + { + event.Skip(); return; + } // accept changes m_grid->DisableCellEditControl(); - event.Skip(); + // notice that we must not skip the event here because the call above may + // delete the control which received the kill focus event in the first + // place and if we pretend not having processed the event, the search for a + // handler for it will continue using the now deleted object resulting in a + // crash } void wxGridCellEditorEvtHandler::OnKeyDown(wxKeyEvent& event) -- 2.45.2