]> git.saurik.com Git - wxWidgets.git/commitdiff
pass event to validators fisrt, before using the dynamic event table
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 26 Jun 2003 13:00:56 +0000 (13:00 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 26 Jun 2003 13:00:56 +0000 (13:00 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/event.cpp

index 60ebe589a74ca32f5f5508653088f7e43c90d225..1aac4f55baf3bd0297a594ebb7a72a1ed039cacc 100644 (file)
@@ -821,24 +821,25 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event)
     // 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
 
-        // 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;
-            table = table->baseTable;
         }
     }
 
@@ -849,6 +850,8 @@ bool wxEvtHandler::ProcessEvent(wxEvent& event)
             return TRUE;
     }
 
+    // Finally propagate the event upwards the window chain and/or to the
+    // application object as necessary
     return TryParent(event);
 }