Set item being edited earlier in wxDataViewRenderer

Partially undo the changes of e417913f46 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.
This commit is contained in:
Vadim Zeitlin
2016-03-19 00:45:15 +01:00
parent 6316045e19
commit a20183440b

View File

@@ -678,6 +678,9 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la
if( !event.IsAllowed() ) if( !event.IsAllowed() )
return false; return false;
// Remember the item being edited for use in FinishEditing() later.
m_item = item;
unsigned int col = GetOwner()->GetModelColumn(); unsigned int col = GetOwner()->GetModelColumn();
const wxVariant& value = CheckedGetValue(dv_ctrl->GetModel(), item, col); 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 // there might be no editor control for the given item
if(!m_editorCtrl) if(!m_editorCtrl)
{
m_item = wxDataViewItem();
return false; return false;
}
wxDataViewEditorCtrlEvtHandler *handler = wxDataViewEditorCtrlEvtHandler *handler =
new wxDataViewEditorCtrlEvtHandler( m_editorCtrl, (wxDataViewRenderer*) this ); new wxDataViewEditorCtrlEvtHandler( m_editorCtrl, (wxDataViewRenderer*) this );
@@ -703,9 +709,6 @@ bool wxDataViewRendererBase::StartEditing( const wxDataViewItem &item, wxRect la
void wxDataViewRendererBase::NotifyEditingStarted(const wxDataViewItem& item) void wxDataViewRendererBase::NotifyEditingStarted(const wxDataViewItem& item)
{ {
// Remember the item being edited for use in FinishEditing() later.
m_item = item;
wxDataViewColumn* const column = GetOwner(); wxDataViewColumn* const column = GetOwner();
wxDataViewCtrl* const dv_ctrl = column->GetOwner(); wxDataViewCtrl* const dv_ctrl = column->GetOwner();