diff options
Diffstat (limited to 'Source/Core/DolphinQt/MainWindow.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/MainWindow.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 3abbf4751d..d15ddef425 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -2010,9 +2010,14 @@ void MainWindow::ShowAchievementSettings() void MainWindow::OnHardcoreChanged() { - if (AchievementManager::GetInstance().IsHardcoreModeActive()) + bool hardcore_active = AchievementManager::GetInstance().IsHardcoreModeActive(); + if (hardcore_active) Settings::Instance().SetDebugModeEnabled(false); - emit Settings::Instance().EmulationStateChanged(Core::GetState(Core::System::GetInstance())); + // EmulationStateChanged causes several dialogs to redraw, including anything affected by hardcore + // mode. Every dialog that depends on hardcore mode is redrawn by EmulationStateChanged. + if (hardcore_active != m_former_hardcore_setting) + emit Settings::Instance().EmulationStateChanged(Core::GetState(Core::System::GetInstance())); + m_former_hardcore_setting = hardcore_active; } #endif // USE_RETRO_ACHIEVEMENTS |
