From: Václav Slavík Date: Fri, 7 Oct 2011 17:24:06 +0000 (+0000) Subject: Handle inline editing in generic wxDataViewCtrl as Windows 7 does. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a67e6b86f686ac8036f31d8cd38fdb7a7325c072?ds=inline Handle inline editing in generic wxDataViewCtrl as Windows 7 does. Mimic the behavior of Windows 7's Explorer: edit the item that has focus if it is selected or the first selected item if focus is out of selection. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index 818889d59a..d962bfd8f8 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -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