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
This commit is contained in:
Vadim Zeitlin
2002-09-02 12:51:33 +00:00
parent a1d22ad7e9
commit 6151e1445b

View File

@@ -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() )
{