+ // do not use wxIsalnum() here
+ if ( !event.HasModifiers() && isalnum(keyCode) )
+ {
+ // find the next item starting with the given prefix
+ char ch = (char)keyCode;
+
+ wxTreeItemId id = FindItem(m_current, m_findPrefix + ch);
+ if ( !id.IsOk() )
+ {
+ // no such item
+ break;
+ }
+
+ SelectItem(id);
+
+ m_findPrefix += ch;
+
+ // also start the timer to reset the current prefix if the user
+ // doesn't press any more alnum keys soon -- we wouldn't want
+ // to use this prefix for a new item search
+ if ( !m_findTimer )
+ {
+ m_findTimer = new wxTreeFindTimer(this);
+ }
+
+ m_findTimer->Start(wxTreeFindTimer::DELAY, wxTIMER_ONE_SHOT);
+ }
+ else
+ {
+ event.Skip();
+ }