fix fullscreen toggling (#1364)

This commit is contained in:
emmauss 2020-07-23 13:12:19 +00:00 committed by GitHub
parent 9e141bc3da
commit 3c1f220c5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)