don't send fictious menu events when another WM_COMMAND occurs while a popup menu is shown
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -3522,7 +3522,7 @@ bool wxWindowMSW::HandleGetMinMaxInfo(void *mmInfo)
|
|||||||
bool wxWindowMSW::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control)
|
bool wxWindowMSW::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control)
|
||||||
{
|
{
|
||||||
#if wxUSE_MENUS_NATIVE
|
#if wxUSE_MENUS_NATIVE
|
||||||
if ( wxCurrentPopupMenu )
|
if ( !cmd && wxCurrentPopupMenu )
|
||||||
{
|
{
|
||||||
wxMenu *popupMenu = wxCurrentPopupMenu;
|
wxMenu *popupMenu = wxCurrentPopupMenu;
|
||||||
wxCurrentPopupMenu = NULL;
|
wxCurrentPopupMenu = NULL;
|
||||||
@@ -3531,14 +3531,14 @@ bool wxWindowMSW::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control)
|
|||||||
}
|
}
|
||||||
#endif // wxUSE_MENUS_NATIVE
|
#endif // wxUSE_MENUS_NATIVE
|
||||||
|
|
||||||
wxWindow *win = (wxWindow*) NULL;
|
wxWindow *win = NULL;
|
||||||
if ( cmd == 0 || cmd == 1 ) // menu or accel - use id
|
if ( cmd == 0 || cmd == 1 ) // menu or accel - use id
|
||||||
{
|
{
|
||||||
// must cast to a signed type before comparing with other ids!
|
// must cast to a signed type before comparing with other ids!
|
||||||
win = FindItem((signed short)id);
|
win = FindItem((signed short)id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!win && control)
|
if ( !win && control )
|
||||||
{
|
{
|
||||||
// find it from HWND - this works even with the broken programs using
|
// find it from HWND - this works even with the broken programs using
|
||||||
// the same ids for different controls
|
// the same ids for different controls
|
||||||
|
Reference in New Issue
Block a user