From a20183440b21fd6af6786fb4aee9c6c372747951 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 19 Mar 2016 00:45:15 +0100 Subject: [PATCH] Set item being edited earlier in wxDataViewRenderer Partially undo the changes of e417913f4676c8b4ae2104e23cdbdd2c945ee588 and set m_item in StartEditing() as it's supposed to be already set when CreateEditorCtrl() is called and setting it in NotifyEditingStarted() was too late for this. --- src/common/datavcmn.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index 1d9ee90af5..c5440b80de 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -678,6 +678,9 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la if( !event.IsAllowed() ) return false; + // Remember the item being edited for use in FinishEditing() later. + m_item = item; + unsigned int col = GetOwner()->GetModelColumn(); const wxVariant& value = CheckedGetValue(dv_ctrl->GetModel(), item, col); @@ -685,7 +688,10 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la // there might be no editor control for the given item if(!m_editorCtrl) + { + m_item = wxDataViewItem(); return false; + } wxDataViewEditorCtrlEvtHandler *handler = new wxDataViewEditorCtrlEvtHandler( m_editorCtrl, (wxDataViewRenderer*) this ); @@ -703,9 +709,6 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la void wxDataViewRendererBase::NotifyEditingStarted(const wxDataViewItem& item) { - // Remember the item being edited for use in FinishEditing() later. - m_item = item; - wxDataViewColumn* const column = GetOwner(); wxDataViewCtrl* const dv_ctrl = column->GetOwner();