diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 5e321095d5..51d7f94188 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 04bb887aea..4a0d912bbd 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);