X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1c8e71c92d6bc3a31a28e275c74cddcc0922b22d..d5363c04ac7bfd5409b369746a67b83fd10cfdbc:/src/generic/datavgen.cpp diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index 818889d59a..1de15c7da8 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -2234,7 +2234,7 @@ bool wxDataViewMainWindow::ItemDeleted(const wxDataViewItem& parent, // collapsed) item in a tree model. So it's not an error if we don't know // about this item, just return without doing anything then. if ( !parentNode ) - return false; + return true; wxCHECK_MSG( parentNode->HasChildren(), false, "parent node doesn't have children?" ); const wxDataViewTreeNodes& parentsChildren = parentNode->GetChildNodes(); @@ -2265,7 +2265,7 @@ bool wxDataViewMainWindow::ItemDeleted(const wxDataViewItem& parent, if ( parentNode->GetChildNodes().empty() ) parentNode->SetHasChildren(GetModel()->IsContainer(parent)); - return false; + return true; } // Delete the item from wxDataViewTreeNode representation: @@ -3583,7 +3583,17 @@ void wxDataViewMainWindow::OnChar( wxKeyEvent &event ) { if( !m_selection.empty() ) { - const wxDataViewItem item = GetItemByRow(m_selection[0]); + // Mimic Windows 7 behavior: edit the item that has focus + // if it is selected and the first selected item if focus + // is out of selection. + int sel; + if ( m_selection.Index(m_currentRow) != wxNOT_FOUND ) + sel = m_currentRow; + else + sel = m_selection[0]; + + + const wxDataViewItem item = GetItemByRow(sel); // Edit the current column. If not column is focused // (typically because the user has full row selected), try