user32: Always release menu item in EnableMenuItem.

Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Fabian Maurer 2018-06-22 20:32:17 +02:00 committed by Alexandre Julliard
parent 15215bd071
commit aee9fa0e55

View File

@ -3741,15 +3741,13 @@ BOOL WINAPI EnableMenuItem( HMENU hMenu, UINT id, UINT wFlags )
item->fState ^= (oldflags ^ wFlags) & (MF_GRAYED | MF_DISABLED); item->fState ^= (oldflags ^ wFlags) & (MF_GRAYED | MF_DISABLED);
/* If the close item in the system menu change update the close button */ /* If the close item in the system menu change update the close button */
if ((item->wID == SC_CLOSE) && (oldflags != wFlags)) if ((item->wID == SC_CLOSE) && (oldflags != wFlags) && menu->hSysMenuOwner)
{
if (menu->hSysMenuOwner)
{ {
RECT rc; RECT rc;
POPUPMENU* parentMenu; POPUPMENU* parentMenu;
HWND hwnd; HWND hwnd;
/* Get the parent menu to access*/ /* Get the parent menu to access */
parentMenu = grab_menu_ptr(menu->hSysMenuOwner); parentMenu = grab_menu_ptr(menu->hSysMenuOwner);
release_menu_ptr(menu); release_menu_ptr(menu);
if (!parentMenu) if (!parentMenu)
@ -3759,11 +3757,10 @@ BOOL WINAPI EnableMenuItem( HMENU hMenu, UINT id, UINT wFlags )
release_menu_ptr(parentMenu); release_menu_ptr(parentMenu);
/* Refresh the frame to reflect the change */ /* Refresh the frame to reflect the change */
WIN_GetRectangles( hwnd, COORDS_CLIENT, &rc, NULL ); WIN_GetRectangles(hwnd, COORDS_CLIENT, &rc, NULL);
rc.bottom = 0; rc.bottom = 0;
RedrawWindow(hwnd, &rc, 0, RDW_FRAME | RDW_INVALIDATE | RDW_NOCHILDREN); RedrawWindow(hwnd, &rc, 0, RDW_FRAME | RDW_INVALIDATE | RDW_NOCHILDREN);
} }
}
else else
release_menu_ptr(menu); release_menu_ptr(menu);