From: Vadim Zeitlin Date: Sat, 15 Jan 2000 00:17:06 +0000 (+0000) Subject: use HWND in HandleCommand() to let buggy programs using duplicate ids for controls... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/b853f8981fc8b59f9824b27e4c96e99eda6735dd?ds=inline use HWND in HandleCommand() to let buggy programs using duplicate ids for controls work git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/window.cpp b/src/msw/window.cpp index b7552a3d6c..56c4913473 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -2982,10 +2982,16 @@ bool wxWindow::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control) return popupMenu->MSWCommand(cmd, id); } - // must cast to a signed type before comparing with other ids! - wxWindow *win = FindItem((signed short)id); - if ( !win ) + wxWindow *win; + if ( cmd == 0 || cmd == 1 ) // menu or accel - use id { + // must cast to a signed type before comparing with other ids! + win = FindItem((signed short)id); + } + else + { + // find it from HWND - this works even with the broken programs using + // the same ids for different controls win = wxFindWinFromHandle(control); }