Explorar o código

fix fullscreen toggling (#1364)

emmauss %!s(int64=5) %!d(string=hai) anos
pai
achega
3c1f220c5e
Modificáronse 1 ficheiros con 16 adicións e 4 borrados
  1. 16 4
      Ryujinx/Ui/MainWindow.cs

+ 16 - 4
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)