From 3c1f220c5ec6ea824e6a0c12d77fd8ce01ee0d1b Mon Sep 17 00:00:00 2001 From: emmauss Date: Thu, 23 Jul 2020 13:12:19 +0000 Subject: [PATCH] fix fullscreen toggling (#1364) --- Ryujinx/Ui/MainWindow.cs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs index 27fcd3339..92e0c9567 100644 --- a/Ryujinx/Ui/MainWindow.cs +++ b/Ryujinx/Ui/MainWindow.cs @@ -94,6 +94,7 @@ namespace Ryujinx.Ui this.DefaultWidth = monitorWidth < 1280 ? monitorWidth : 1280; this.DefaultHeight = monitorHeight < 760 ? monitorHeight : 760; + this.WindowStateEvent += MainWindow_WindowStateEvent; this.DeleteEvent += Window_Close; _fullScreen.Activated += FullScreen_Toggled; @@ -192,6 +193,11 @@ namespace Ryujinx.Ui _statusBar.Hide(); } + private void MainWindow_WindowStateEvent(object o, WindowStateEventArgs args) + { + _fullScreen.Label = args.Event.NewWindowState.HasFlag(Gdk.WindowState.Fullscreen) ? "Exit Fullscreen" : "Enter Fullscreen"; + } + #if USE_DEBUGGING private void _openDebugger_Opened(object sender, EventArgs e) { @@ -505,6 +511,11 @@ namespace Ryujinx.Ui _glWidget.ShowAll(); EditFooterForGameRender(); + + if (this.Window.State.HasFlag(Gdk.WindowState.Fullscreen)) + { + ToggleExtraWidgets(false); + } }); _glWidget.WaitEvent.WaitOne(); @@ -520,6 +531,11 @@ namespace Ryujinx.Ui // NOTE: Everything that is here will not be executed when you close the UI. Application.Invoke(delegate { + if (this.Window.State.HasFlag(Gdk.WindowState.Fullscreen)) + { + ToggleExtraWidgets(true); + } + _viewBox.Remove(_glWidget); _glWidget.Exit(); @@ -583,10 +599,6 @@ namespace Ryujinx.Ui _footerBox.Hide(); } } - - bool fullScreenToggled = this.Window.State.HasFlag(Gdk.WindowState.Fullscreen); - - _fullScreen.Label = fullScreenToggled ? "Exit Fullscreen" : "Enter Fullscreen"; } private static void UpdateGameMetadata(string titleId)