aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx/Ui/MainWindow.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx/Ui/MainWindow.cs')
-rw-r--r--src/Ryujinx/Ui/MainWindow.cs38
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
+}