diff options
Diffstat (limited to 'src/Ryujinx/Ui/MainWindow.cs')
-rw-r--r-- | src/Ryujinx/Ui/MainWindow.cs | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/src/Ryujinx/Ui/MainWindow.cs b/src/Ryujinx/Ui/MainWindow.cs index bf96e18a..4911c900 100644 --- a/src/Ryujinx/Ui/MainWindow.cs +++ b/src/Ryujinx/Ui/MainWindow.cs @@ -153,13 +153,8 @@ namespace Ryujinx.Ui // Apply custom theme if needed. ThemeHelper.ApplyTheme(); - Gdk.Monitor monitor = Display.GetMonitor(0); - // Sets overridden fields. - int monitorWidth = monitor.Geometry.Width * monitor.ScaleFactor; - int monitorHeight = monitor.Geometry.Height * monitor.ScaleFactor; - DefaultWidth = monitorWidth < 1280 ? monitorWidth : 1280; - DefaultHeight = monitorHeight < 760 ? monitorHeight : 760; + SetWindowSizePosition(); Icon = new Gdk.Pixbuf(Assembly.GetAssembly(typeof(ConfigurationState)), "Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png"); Title = $"Ryujinx {Program.Version}"; @@ -1314,6 +1309,7 @@ namespace Ryujinx.Ui { if (!_gameLoaded || !ConfigurationState.Instance.ShowConfirmExit || GtkDialog.CreateExitDialog()) { + SaveWindowSizePosition(); End(); } } @@ -1322,6 +1318,7 @@ namespace Ryujinx.Ui { if (!_gameLoaded || !ConfigurationState.Instance.ShowConfirmExit || GtkDialog.CreateExitDialog()) { + SaveWindowSizePosition(); End(); } else @@ -1330,6 +1327,33 @@ namespace Ryujinx.Ui } } + private void SetWindowSizePosition() + { + DefaultWidth = ConfigurationState.Instance.Ui.WindowStartup.WindowSizeWidth; + DefaultHeight = ConfigurationState.Instance.Ui.WindowStartup.WindowSizeHeight; + + Move(ConfigurationState.Instance.Ui.WindowStartup.WindowPositionX, ConfigurationState.Instance.Ui.WindowStartup.WindowPositionY); + + if (ConfigurationState.Instance.Ui.WindowStartup.WindowMaximized) + { + Maximize(); + } + } + + private void SaveWindowSizePosition() + { + GetSize(out int windowWidth, out int windowHeight); + GetPosition(out int windowXPos, out int windowYPos); + + ConfigurationState.Instance.Ui.WindowStartup.WindowMaximized.Value = IsMaximized; + ConfigurationState.Instance.Ui.WindowStartup.WindowSizeWidth.Value = windowWidth; + ConfigurationState.Instance.Ui.WindowStartup.WindowSizeHeight.Value = windowHeight; + ConfigurationState.Instance.Ui.WindowStartup.WindowPositionX.Value = windowXPos; + ConfigurationState.Instance.Ui.WindowStartup.WindowPositionY.Value = windowYPos; + + SaveConfig(); + } + private void StopEmulation_Pressed(object sender, EventArgs args) { if (_emulationContext != null) @@ -1831,4 +1855,4 @@ namespace Ryujinx.Ui UpdateGameTable(); } } -}
\ No newline at end of file +} |