Make sure that HWND comparisons are always done with full 32-bit
handles.
diff --git a/controls/menu.c b/controls/menu.c
index 6092b45..675026d 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -353,7 +353,7 @@
{
POPUPMENU *menu = MENU_GetMenu(hMenu);
menu->wFlags = MF_SYSMENU;
- menu->hWnd = hWnd;
+ menu->hWnd = WIN_GetFullHandle( hWnd );
if (hPopupMenu == (HMENU)(-1))
hPopupMenu = MENU_CopySysPopup();
@@ -2362,7 +2362,7 @@
else /* application returned a new menu to switch to */
{
hNewMenu = next_menu.hmenuNext;
- hNewWnd = next_menu.hwndNext;
+ hNewWnd = WIN_GetFullHandle( next_menu.hwndNext );
if( IsMenu(hNewMenu) && IsWindow(hNewWnd) )
{
@@ -2609,7 +2609,7 @@
mt.trackFlags = 0;
mt.hCurrentMenu = hmenu;
mt.hTopMenu = hmenu;
- mt.hOwnerWnd = hwnd;
+ mt.hOwnerWnd = WIN_GetFullHandle( hwnd );
mt.pt.x = x;
mt.pt.y = y;
@@ -3968,6 +3968,7 @@
}
if (GetWindowLongA( hWnd, GWL_STYLE ) & WS_CHILD) return FALSE;
+ hWnd = WIN_GetFullHandle( hWnd );
if (GetCapture() == hWnd) ReleaseCapture();
if (hMenu != 0)