From fa77e092397abd44bcd7f7bed8ba725510cb2a37 Mon Sep 17 00:00:00 2001 From: spycrab Date: Sun, 13 May 2018 15:03:48 +0200 Subject: [PATCH] Qt: Fix render widget not being on top when using -n / -e --- Source/Core/DolphinQt2/Main.cpp | 2 +- Source/Core/DolphinQt2/MainWindow.cpp | 14 +++++++++++++- Source/Core/DolphinQt2/MainWindow.h | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinQt2/Main.cpp b/Source/Core/DolphinQt2/Main.cpp index eb4905264216..95593ebe348f 100644 --- a/Source/Core/DolphinQt2/Main.cpp +++ b/Source/Core/DolphinQt2/Main.cpp @@ -180,7 +180,7 @@ int main(int argc, char* argv[]) MainWindow win{std::move(boot)}; if (options.is_set("debugger")) Settings::Instance().SetDebugModeEnabled(true); - win.show(); + win.Show(); #if defined(USE_ANALYTICS) && USE_ANALYTICS if (!SConfig::GetInstance().m_analytics_permission_asked) diff --git a/Source/Core/DolphinQt2/MainWindow.cpp b/Source/Core/DolphinQt2/MainWindow.cpp index 5b0b31858294..aa15975cde0d 100644 --- a/Source/Core/DolphinQt2/MainWindow.cpp +++ b/Source/Core/DolphinQt2/MainWindow.cpp @@ -110,7 +110,7 @@ MainWindow::MainWindow(std::unique_ptr boot_parameters) : QMainW NetPlayInit(); if (boot_parameters) - StartGame(std::move(boot_parameters)); + m_pending_boot = std::move(boot_parameters); QSettings& settings = Settings::GetQSettings(); @@ -1351,3 +1351,15 @@ void MainWindow::OnUpdateProgressDialog(QString title, int progress, int total) m_progress_dialog = nullptr; } } + +void MainWindow::Show() +{ + QWidget::show(); + + // If the booting of a game was requested on start up, do that now + if (m_pending_boot != nullptr) + { + StartGame(std::move(m_pending_boot)); + m_pending_boot.reset(); + } +} diff --git a/Source/Core/DolphinQt2/MainWindow.h b/Source/Core/DolphinQt2/MainWindow.h index 3b76e271461f..82520f68cb32 100644 --- a/Source/Core/DolphinQt2/MainWindow.h +++ b/Source/Core/DolphinQt2/MainWindow.h @@ -58,6 +58,8 @@ class MainWindow final : public QMainWindow explicit MainWindow(std::unique_ptr boot_parameters); ~MainWindow(); + void Show(); + bool eventFilter(QObject* object, QEvent* event) override; signals: