wxTRANSPARENT_PEN;
wxColour colText;
- if (item->IsSelected() && m_hasFocus)
+ if ( item->IsSelected() )
{
colText = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
}
wxTreeEvent te( wxEVT_COMMAND_TREE_KEY_DOWN, GetId() );
te.m_code = (int)event.KeyCode();
te.SetEventObject( this );
- GetEventHandler()->ProcessEvent( te );
+ if ( GetEventHandler()->ProcessEvent( te ) )
+ {
+ // intercepted by the user code
+ return;
+ }
if ( (m_current == 0) || (m_key_current == 0) )
{
m_renameTimer->Stop();
m_lastOnSame = FALSE;
- if (item->HasPlus())
+ // send activate event first
+ wxTreeEvent nevent( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() );
+ nevent.m_item = (long) item;
+ nevent.m_code = 0;
+ CalcScrolledPosition(x, y,
+ &nevent.m_pointDrag.x,
+ &nevent.m_pointDrag.y);
+ nevent.SetEventObject( this );
+ if ( !GetEventHandler()->ProcessEvent( nevent ) )
{
- // for a "directory" node, toggle expansion
- Toggle(item);
- }
- else
- {
- // for a "file" node, activate it
- wxTreeEvent nevent( wxEVT_COMMAND_TREE_ITEM_ACTIVATED,
- GetId() );
- nevent.m_item = (long) item;
- nevent.m_code = 0;
- CalcScrolledPosition(x, y,
- &nevent.m_pointDrag.x,
- &nevent.m_pointDrag.y);
- nevent.SetEventObject( this );
- GetEventHandler()->ProcessEvent( nevent );
+ // if the user code didn't process the activate event,
+ // handle it ourselves by toggling the item when it is
+ // double clicked
+ if ( item->HasPlus() )
+ {
+ Toggle(item);
+ }
}
}
}