diff --git a/Core/Config.cpp b/Core/Config.cpp index 3798362ef8ba..45e396c9b76b 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -610,6 +610,7 @@ static ConfigSetting generalSettings[] = { ConfigSetting("PauseWhenMinimized", &g_Config.bPauseWhenMinimized, false, true, true), ConfigSetting("DumpDecryptedEboots", &g_Config.bDumpDecryptedEboot, false, true, true), ConfigSetting("FullscreenOnDoubleclick", &g_Config.bFullscreenOnDoubleclick, true, false, false), + ConfigSetting("ShowMenuBar", &g_Config.bShowMenuBar, true, true, false), ReportedConfigSetting("MemStickInserted", &g_Config.bMemStickInserted, true, true, true), ConfigSetting("EnablePlugins", &g_Config.bLoadPlugins, true, true, true), diff --git a/Core/Config.h b/Core/Config.h index 36ec3a760da7..8a7f519621f7 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -191,6 +191,7 @@ struct Config { int iWindowY; int iWindowWidth; // Windows and other windowed environments int iWindowHeight; + bool bShowMenuBar; // Windows-only float fUITint; float fUISaturation; diff --git a/Windows/MainWindow.cpp b/Windows/MainWindow.cpp index f483a55d9f83..733e270db365 100644 --- a/Windows/MainWindow.cpp +++ b/Windows/MainWindow.cpp @@ -334,9 +334,6 @@ namespace MainWindow dwStyle &= ~WS_POPUP; // Re-add caption and border styles. dwStyle |= WS_OVERLAPPEDWINDOW; - - // Put back the menu bar. - ::SetMenu(hWnd, menu); } else { // If the window was maximized before going fullscreen, make sure to restore first // in order not to have the taskbar show up on top of PPSSPP. @@ -353,8 +350,8 @@ namespace MainWindow ::SetWindowLong(hWnd, GWL_STYLE, dwStyle); - // Remove the menu bar. This can trigger WM_SIZE - ::SetMenu(hWnd, goingFullscreen ? NULL : menu); + // Remove the menu bar. This can trigger WM_SIZE because the contents change size. + ::SetMenu(hWnd, goingFullscreen || !g_Config.bShowMenuBar ? NULL : menu); if (g_Config.UseFullScreen() != goingFullscreen) { g_Config.bFullScreen = goingFullscreen;