Win32: Enable/disable menu items when a menu is popped down. Allows us to avoid calling UpdateUI from sceUmd. Should fix #9546

This commit is contained in:
Henrik Rydgard 2017-04-04 10:08:41 +02:00
parent 0ca16c29ae
commit 0a0aa02aae
4 changed files with 6 additions and 11 deletions

View File

@ -540,16 +540,13 @@ bool getUMDReplacePermit() {
return UMDReplacePermit;
}
static u32 sceUmdReplaceProhibit()
{
static u32 sceUmdReplaceProhibit() {
UMDReplacePermit = false;
DEBUG_LOG(SCEIO,"sceUmdReplaceProhibit()");
host->UpdateUI();
return 0;
}
static u32 sceUmdReplacePermit()
{
static u32 sceUmdReplacePermit() {
UMDReplacePermit = true;
DEBUG_LOG(SCEIO,"sceUmdReplacePermit()");
host->UpdateUI();

View File

@ -880,9 +880,10 @@ namespace MainWindow
break;
case WM_MENUSELECT:
// Unfortunately, accelerate keys (hotkeys) shares the same enabled/disabled states
// with corresponding menu items.
// Called when a menu is opened. Also when an item is selected, but meh.
// This is a good place to update the enabled/disabled state of menu items.
UpdateMenus();
SetIngameMenuItemStates(menu, GetUIState());
WindowsRawInput::NotifyMenu();
break;

View File

@ -337,10 +337,6 @@ namespace MainWindow {
// Help menu: it's translated in CreateHelpMenu.
CreateHelpMenu(menu);
// TODO: Urgh! Why do we need this here?
// The menu is supposed to enable/disable this stuff directly afterward.
SetIngameMenuItemStates(menu, GetUIState());
DrawMenuBar(hWnd);
UpdateMenus();
}

View File

@ -12,4 +12,5 @@ namespace MainWindow {
void BrowseBackground();
void BrowseBackgroundDone();
void setTexScalingMultiplier(int level);
void SetIngameMenuItemStates(HMENU menu, const GlobalUIState state);
}