]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/window.cpp
fixed event processing for the target window
[wxWidgets.git] / src / msw / window.cpp
index bcbc9cfe08870937032b3e3bbb3ddf5c18f8c7c5..02ba75ec1015d9baa1e7b44a3f318761e878fd0f 100644 (file)
@@ -3536,17 +3536,19 @@ bool wxWindowMSW::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control)
 #endif // wxUSE_MENUS_NATIVE
 
     wxWindow *win = NULL;
 #endif // wxUSE_MENUS_NATIVE
 
     wxWindow *win = NULL;
-    if ( cmd == 0 || cmd == 1 ) // menu or accel - use id
+
+    // first try to find it from HWND - this works even with the broken
+    // programs using the same ids for different controls
+    if ( control )
     {
     {
-        // must cast to a signed type before comparing with other ids!
-        win = FindItem((signed short)id);
+        win = wxFindWinFromHandle(control);
     }
 
     }
 
-    if ( !win && control )
+    // try the id
+    if ( !win )
     {
     {
-        // find it from HWND - this works even with the broken programs using
-        // the same ids for different controls
-        win = wxFindWinFromHandle(control);
+        // must cast to a signed type before comparing with other ids!
+        win = FindItem((signed short)id);
     }
 
     if ( win )
     }
 
     if ( win )