From 8942bfd759fff0b1d044fe591c0b3902ee506487 Mon Sep 17 00:00:00 2001 From: FearlessTobi Date: Mon, 4 Dec 2017 17:42:23 +0100 Subject: [PATCH] Fix a bug in the fullscreen implementation --- src/citra_qt/main.cpp | 44 ++++++++++++++++++++++++++++--------------- src/citra_qt/main.h | 2 ++ 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index 1f24a9b2d..14dd8b553 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -583,7 +583,9 @@ void GMainWindow::BootGame(const QString& filename) { render_window->setFocus(); emulation_running = true; - ToggleFullscreen(); + if (ui.action_Fullscreen->isChecked()) { + ShowFullscreen(); + } OnStartGame(); } @@ -812,21 +814,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/citra_qt/main.h b/src/citra_qt/main.h index 6d1eeb3ee..70fb309e7 100644 --- a/src/citra_qt/main.h +++ b/src/citra_qt/main.h @@ -141,6 +141,8 @@ private slots: void OnToggleFilterBar(); void OnDisplayTitleBars(bool); void ToggleFullscreen(); + void ShowFullscreen(); + void HideFullscreen(); void ToggleWindowMode(); void OnCreateGraphicsSurfaceViewer(); void OnCoreError(Core::System::ResultStatus, std::string);