git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21424
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// An event handler can be enabled or disabled
if ( GetEvtHandlerEnabled() )
{
// An event handler can be enabled or disabled
if ( GetEvtHandlerEnabled() )
{
- // Handle per-instance dynamic event tables first
- if ( m_dynamicEvents && SearchDynamicEventTable(event) )
- return TRUE;
-
+ // if we have a validator, it has higher priority than our own event
+ // table
#if wxUSE_VALIDATORS
if ( TryValidator(event) )
return TRUE;
#endif // wxUSE_VALIDATORS
#if wxUSE_VALIDATORS
if ( TryValidator(event) )
return TRUE;
#endif // wxUSE_VALIDATORS
- // Then static per-class event tables
- const wxEventTable *table = GetEventTable();
+ // Handle per-instance dynamic event tables first
+ if ( m_dynamicEvents && SearchDynamicEventTable(event) )
+ return TRUE;
- // Search upwards through the inheritance hierarchy
- while (table)
+ // Then static per-class event tables (and search upwards through the
+ // inheritance hierarchy)
+ for ( const wxEventTable *table = GetEventTable();
+ table;
+ table = table->baseTable )
{
if ( SearchEventTable((wxEventTable&)*table, event) )
return TRUE;
{
if ( SearchEventTable((wxEventTable&)*table, event) )
return TRUE;
- table = table->baseTable;
+ // Finally propagate the event upwards the window chain and/or to the
+ // application object as necessary
return TryParent(event);
}
return TryParent(event);
}