mirror of
https://github.com/reactos/reactos.git
synced 2024-08-21 10:53:15 +00:00
Wine patch by Thomas Kho: Fix behavior when selecting disabled menu items.
svn path=/trunk/; revision=22333
This commit is contained in:
parent
f3025b54e9
commit
fb2ac07e08
|
@ -2252,7 +2252,7 @@ MenuSwitchTracking(MTRACKER* Mt, PROSMENUINFO PtMenuInfo, UINT Index)
|
||||||
*
|
*
|
||||||
* Execute a menu item (for instance when user pressed Enter).
|
* Execute a menu item (for instance when user pressed Enter).
|
||||||
* Return the wID of the executed item. Otherwise, -1 indicating
|
* Return the wID of the executed item. Otherwise, -1 indicating
|
||||||
* that no menu item was executed;
|
* that no menu item was executed, -2 if a popup is shown;
|
||||||
* Have to receive the flags for the TrackPopupMenu options to avoid
|
* Have to receive the flags for the TrackPopupMenu options to avoid
|
||||||
* sending unwanted message.
|
* sending unwanted message.
|
||||||
*
|
*
|
||||||
|
@ -2306,6 +2306,7 @@ MenuExecFocusedItem(MTRACKER *Mt, PROSMENUINFO MenuInfo, UINT Flags)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Mt->CurrentMenu = MenuShowSubPopup(Mt->OwnerWnd, MenuInfo, TRUE, Flags);
|
Mt->CurrentMenu = MenuShowSubPopup(Mt->OwnerWnd, MenuInfo, TRUE, Flags);
|
||||||
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -2406,8 +2407,9 @@ MenuButtonUp(MTRACKER *Mt, HMENU PtMenu, UINT Flags)
|
||||||
{
|
{
|
||||||
if (0 == (ItemInfo.fType & MF_POPUP))
|
if (0 == (ItemInfo.fType & MF_POPUP))
|
||||||
{
|
{
|
||||||
|
INT ExecutedMenuId = MenuExecFocusedItem(Mt, &MenuInfo, Flags);
|
||||||
MenuCleanupRosMenuItemInfo(&ItemInfo);
|
MenuCleanupRosMenuItemInfo(&ItemInfo);
|
||||||
return MenuExecFocusedItem(Mt, &MenuInfo, Flags);
|
return (ExecutedMenuId < 0) ? -1 : ExecutedMenuId;
|
||||||
}
|
}
|
||||||
MenuCleanupRosMenuItemInfo(&ItemInfo);
|
MenuCleanupRosMenuItemInfo(&ItemInfo);
|
||||||
|
|
||||||
|
@ -3355,6 +3357,7 @@ MenuTrackMenu(HMENU Menu, UINT Flags, INT x, INT y,
|
||||||
break; /* WM_SYSKEYDOWN */
|
break; /* WM_SYSKEYDOWN */
|
||||||
|
|
||||||
case WM_CHAR:
|
case WM_CHAR:
|
||||||
|
case WM_SYSCHAR:
|
||||||
{
|
{
|
||||||
UINT Pos;
|
UINT Pos;
|
||||||
|
|
||||||
|
@ -3365,7 +3368,7 @@ MenuTrackMenu(HMENU Menu, UINT Flags, INT x, INT y,
|
||||||
if (L'\r' == Msg.wParam || L' ' == Msg.wParam)
|
if (L'\r' == Msg.wParam || L' ' == Msg.wParam)
|
||||||
{
|
{
|
||||||
ExecutedMenuId = MenuExecFocusedItem(&Mt, &MenuInfo, Flags);
|
ExecutedMenuId = MenuExecFocusedItem(&Mt, &MenuInfo, Flags);
|
||||||
fEndMenu = (ExecutedMenuId != -1);
|
fEndMenu = (ExecutedMenuId != -2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3390,7 +3393,7 @@ MenuTrackMenu(HMENU Menu, UINT Flags, INT x, INT y,
|
||||||
{
|
{
|
||||||
MenuSelectItem(Mt.OwnerWnd, &MenuInfo, Pos, TRUE, 0);
|
MenuSelectItem(Mt.OwnerWnd, &MenuInfo, Pos, TRUE, 0);
|
||||||
ExecutedMenuId = MenuExecFocusedItem(&Mt, &MenuInfo, Flags);
|
ExecutedMenuId = MenuExecFocusedItem(&Mt, &MenuInfo, Flags);
|
||||||
fEndMenu = (-1 != ExecutedMenuId);
|
fEndMenu = (-2 != ExecutedMenuId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3453,7 +3456,9 @@ MenuTrackMenu(HMENU Menu, UINT Flags, INT x, INT y,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The return value is only used by TrackPopupMenu */
|
/* The return value is only used by TrackPopupMenu */
|
||||||
return (-1 != ExecutedMenuId) ? ExecutedMenuId : 0;
|
if (!(Flags & TPM_RETURNCMD)) return TRUE;
|
||||||
|
if (ExecutedMenuId < 0) ExecutedMenuId = 0;
|
||||||
|
return ExecutedMenuId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
|
Loading…
Reference in a new issue