Fix Switch-To keyboard shortcuts cannot be used in context menu

Fix #943, close #9436
This commit is contained in:
Udo Hoffmann 2021-01-21 22:56:39 +01:00 committed by Don HO
parent ca1bcb1ec0
commit fed1803c78
No known key found for this signature in database
GPG Key ID: 6C429F1D8D84F46E
1 changed files with 10 additions and 7 deletions

View File

@ -112,15 +112,18 @@ void ContextMenu::create(HWND hParent, const std::vector<MenuItemUnit> & menuIte
{
lastIsSep = true;
}
if (mainMenuHandle)
{
bool isEnabled = (::GetMenuState(mainMenuHandle, item._cmdID, MF_BYCOMMAND)&(MF_DISABLED|MF_GRAYED)) == 0;
bool isChecked = (::GetMenuState(mainMenuHandle, item._cmdID, MF_BYCOMMAND)&(MF_CHECKED)) != 0;
UINT s = ::GetMenuState(mainMenuHandle, item._cmdID, MF_BYCOMMAND);
if (s != -1)
{
bool isEnabled = (s & (MF_DISABLED | MF_GRAYED)) == 0;
bool isChecked = (s & (MF_CHECKED)) != 0;
if (!isEnabled)
enableItem(item._cmdID, isEnabled);
if (isChecked)
checkItem(item._cmdID, isChecked);
}
// set up any menu item bitmaps in the context menu, using main menu bitmaps
memset(&mii, 0, sizeof(mii));