summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/MainWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinQt/MainWindow.cpp')
-rw-r--r--Source/Core/DolphinQt/MainWindow.cpp9
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