Dmitry Timoshkov : user32: Check only for -1 and -2 as special values returned by MENU_ExecFocusedItem .
Module: wine Branch: master Commit: ab8c870ae165b45dbfb6ce8b87402fe94fd826e7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab8c870ae165b45dbfb6ce8b87... Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Thu Nov 2 19:19:39 2006 +0800 user32: Check only for -1 and -2 as special values returned by MENU_ExecFocusedItem. --- dlls/user/menu.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dlls/user/menu.c b/dlls/user/menu.c index 43bb11e..59c8386 100644 --- a/dlls/user/menu.c +++ b/dlls/user/menu.c @@ -2444,7 +2444,7 @@ static INT MENU_ExecFocusedItem( MTRACKE item = &menu->items[menu->FocusedItem]; - TRACE("%p %08x %p\n", hMenu, item->wID, item->hSubMenu); + TRACE("hMenu %p wID %08x hSubMenu %p fType %04x\n", hMenu, item->wID, item->hSubMenu, item->fType); if (!(item->fType & MF_POPUP)) { @@ -2566,10 +2566,13 @@ static INT MENU_ButtonUp( MTRACKER* pmt, if( item && (ptmenu->FocusedItem == id )) { + debug_print_menuitem ("FocusedItem: ", item, ""); + if( !(item->fType & MF_POPUP) ) { INT executedMenuId = MENU_ExecFocusedItem( pmt, hPtMenu, wFlags); - return (executedMenuId < 0) ? -1 : executedMenuId; + if (executedMenuId == -1 || executedMenuId == -2) return -1; + return executedMenuId; } /* If we are dealing with the top-level menu */ @@ -3050,6 +3053,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, if (hmenu) { executedMenuId = MENU_ButtonUp( &mt, hmenu, wFlags); + TRACE("executedMenuId %d\n", executedMenuId); /* End the loop if executedMenuId is an item ID */ /* or if the job was done (executedMenuId = 0). */ @@ -3214,7 +3218,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, /* The return value is only used by TrackPopupMenu */ if (!(wFlags & TPM_RETURNCMD)) return TRUE; - if (executedMenuId < 0) executedMenuId = 0; + if (executedMenuId == -1) executedMenuId = 0; return executedMenuId; } @@ -3364,6 +3368,9 @@ BOOL WINAPI TrackPopupMenu( HMENU hMenu, { BOOL ret = FALSE; + TRACE("hmenu %p flags %04x (%d,%d) reserved %d hwnd %p rect %s\n", + hMenu, wFlags, x, y, nReserved, hWnd, wine_dbgstr_rect(lpRect)); + MENU_InitTracking(hWnd, hMenu, TRUE, wFlags); /* Send WM_INITMENUPOPUP message only if TPM_NONOTIFY flag is not specified */
participants (1)
-
Alexandre Julliard