From 6151e1445bdca0dfca660e3851aa3705bfd543de Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 2 Sep 2002 12:51:33 +0000 Subject: [PATCH] generate key events for Space/Enter in addition to the activate events, as wxMSW does git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/treectlg.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index 2fbe7cde63..8c71e9962d 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -1512,13 +1512,13 @@ void wxGenericTreeCtrl::ExpandAll(const wxTreeItemId& item) if ( !IsExpanded(item) ) return; } - + long cookie; wxTreeItemId child = GetFirstChild(item, cookie); while ( child.IsOk() ) { ExpandAll(child); - + child = GetNextChild(item, cookie); } } @@ -2515,12 +2515,20 @@ void wxGenericTreeCtrl::OnChar( wxKeyEvent &event ) case ' ': case WXK_RETURN: + if ( !event.HasModifiers() ) { wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() ); event.m_item = (long) m_current; event.SetEventObject( this ); GetEventHandler()->ProcessEvent( event ); } + + // in any case, also generate the normal key event for this key, + // even if we generated the ACTIVATED event above: this is what + // wxMSW does and it makes sense because you might not want to + // process ACTIVATED event at all and handle Space and Return + // directly (and differently) which would be impossible otherwise + event.Skip(); break; // up goes to the previous sibling or to the last @@ -2664,14 +2672,14 @@ void wxGenericTreeCtrl::OnChar( wxKeyEvent &event ) default: // do not use wxIsalnum() here - if ( !event.HasModifiers() && + if ( !event.HasModifiers() && ((keyCode >= '0' && keyCode <= '9') || (keyCode >= 'a' && keyCode <= 'z') || (keyCode >= 'A' && keyCode <= 'Z' ))) { // find the next item starting with the given prefix char ch = (char)keyCode; - + wxTreeItemId id = FindItem(m_current, m_findPrefix + (wxChar)ch); if ( !id.IsOk() ) { -- 2.47.2