From a67e6b86f686ac8036f31d8cd38fdb7a7325c072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Fri, 7 Oct 2011 17:24:06 +0000 Subject: [PATCH] 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 --- src/generic/datavgen.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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