From: Vadim Zeitlin Date: Sun, 2 Dec 2001 00:49:02 +0000 (+0000) Subject: always use HWND first in WM_COMMAND handler to avoid mixing the controls with the... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/71292fab8d3f0dbcf93a3dae9c3ad6a29a0fd4c5 always use HWND first in WM_COMMAND handler to avoid mixing the controls with the same id git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/window.cpp b/src/msw/window.cpp index bcbc9cfe08..02ba75ec10 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -3536,17 +3536,19 @@ bool wxWindowMSW::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control) #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 )