diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 3043479b84..56d68b5a30 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -159,6 +159,10 @@ MainWindow::MainWindow(std::unique_ptr boot_parameters) : QMainW restoreGeometry(settings.value(QStringLiteral("mainwindow/geometry")).toByteArray()); m_render_widget_geometry = settings.value(QStringLiteral("renderwidget/geometry")).toByteArray(); + + // Restoring of window states can sometimes go wrong, resulting in widgets being visible when they + // shouldn't be so we have to reapply all our rules afterwards. + Settings::Instance().RefreshWidgetVisibility(); } MainWindow::~MainWindow() diff --git a/Source/Core/DolphinQt/Settings.cpp b/Source/Core/DolphinQt/Settings.cpp index 5a10d71c08..4d54b98b29 100644 --- a/Source/Core/DolphinQt/Settings.cpp +++ b/Source/Core/DolphinQt/Settings.cpp @@ -434,6 +434,13 @@ bool Settings::IsJITVisible() const return QSettings().value(QStringLiteral("debugger/showjit")).toBool(); } +void Settings::RefreshWidgetVisibility() +{ + emit DebugModeToggled(IsDebugModeEnabled()); + emit LogVisibilityChanged(IsLogVisible()); + emit LogConfigVisibilityChanged(IsLogConfigVisible()); +} + void Settings::SetDebugFont(QFont font) { if (GetDebugFont() != font) diff --git a/Source/Core/DolphinQt/Settings.h b/Source/Core/DolphinQt/Settings.h index b80d877e1c..ef03490b63 100644 --- a/Source/Core/DolphinQt/Settings.h +++ b/Source/Core/DolphinQt/Settings.h @@ -66,6 +66,8 @@ public: void SetWidgetsLocked(bool visible); bool AreWidgetsLocked() const; + void RefreshWidgetVisibility(); + // GameList QStringList GetPaths() const; void AddPath(const QString& path);