From 8cdc1be0df83b6070aed28be15ed0000cc81c05b Mon Sep 17 00:00:00 2001 From: goaaats Date: Tue, 16 Jan 2018 15:59:30 +0100 Subject: Merge citra-emu PR#3159 by FearlessTobi(citra-qt : Fix a bug in our fullscreen implementation) --- src/yuzu/main.cpp | 44 +++++++++++++++++++++++++++++--------------- src/yuzu/main.h | 2 ++ 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 5e321095d..51d7f9418 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -420,7 +420,9 @@ void GMainWindow::BootGame(const QString& filename) { render_window->setFocus(); emulation_running = true; - ToggleFullscreen(); + if (ui.action_Fullscreen->isChecked()) { + ShowFullscreen(); + } OnStartGame(); } @@ -572,21 +574,33 @@ void GMainWindow::ToggleFullscreen() { return; } if (ui.action_Fullscreen->isChecked()) { - if (ui.action_Single_Window_Mode->isChecked()) { - ui.menubar->hide(); - statusBar()->hide(); - showFullScreen(); - } else { - render_window->showFullScreen(); - } + ShowFullscreen(); } else { - if (ui.action_Single_Window_Mode->isChecked()) { - statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked()); - ui.menubar->show(); - showNormal(); - } else { - render_window->showNormal(); - } + HideFullscreen(); + } +} + +void GMainWindow::ShowFullscreen() { + if (ui.action_Single_Window_Mode->isChecked()) { + UISettings::values.geometry = saveGeometry(); + ui.menubar->hide(); + statusBar()->hide(); + showFullScreen(); + } else { + UISettings::values.renderwindow_geometry = render_window->saveGeometry(); + render_window->showFullScreen(); + } +} + +void GMainWindow::HideFullscreen() { + if (ui.action_Single_Window_Mode->isChecked()) { + statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked()); + ui.menubar->show(); + showNormal(); + restoreGeometry(UISettings::values.geometry); + } else { + render_window->showNormal(); + render_window->restoreGeometry(UISettings::values.renderwindow_geometry); } } diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 04bb887ae..4a0d912bb 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -128,6 +128,8 @@ private slots: void OnToggleFilterBar(); void OnDisplayTitleBars(bool); void ToggleFullscreen(); + void ShowFullscreen(); + void HideFullscreen(); void ToggleWindowMode(); void OnCoreError(Core::System::ResultStatus, std::string); -- cgit v1.2.3