mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-06-28 11:06:24 +02:00
UI: Fix some MainWindow bugs and implement menubar items to change window size. (#6750)
* Do not save window dimensions when maximized. * Implement option to disable window size/position memory. * Remove logging statements * Implement menubar items for common window sizes. * formatting fixes * Set 720p window as a composite value. * Remove unused using * Fix exception paramter. * Force restore window when a size change is requested * Fix some resizing bugs.
This commit is contained in:
parent
65c035cdf8
commit
d0cc13ce0b
8 changed files with 103 additions and 10 deletions
|
@ -67,8 +67,6 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
|
||||
DataContext = ViewModel;
|
||||
|
||||
SetWindowSizePosition();
|
||||
|
||||
InitializeComponent();
|
||||
Load();
|
||||
|
||||
|
@ -83,6 +81,8 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
Height = ((Height - barHeight) / Program.WindowScaleFactor) + barHeight;
|
||||
Width /= Program.WindowScaleFactor;
|
||||
|
||||
SetWindowSizePosition();
|
||||
|
||||
if (Program.PreviewerDetached)
|
||||
{
|
||||
InputManager = new InputManager(new AvaloniaKeyboardDriver(this), new SDL2GamepadDriver());
|
||||
|
@ -324,6 +324,17 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
|
||||
private void SetWindowSizePosition()
|
||||
{
|
||||
if (!ConfigurationState.Instance.RememberWindowState)
|
||||
{
|
||||
ViewModel.WindowHeight = (720 + StatusBarHeight + MenuBarHeight) * Program.WindowScaleFactor;
|
||||
ViewModel.WindowWidth = 1280 * Program.WindowScaleFactor;
|
||||
|
||||
WindowState = WindowState.Normal;
|
||||
WindowStartupLocation = WindowStartupLocation.CenterScreen;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
PixelPoint savedPoint = new(ConfigurationState.Instance.UI.WindowStartup.WindowPositionX,
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowPositionY);
|
||||
|
||||
|
@ -358,14 +369,18 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
|
||||
private void SaveWindowSizePosition()
|
||||
{
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowSizeHeight.Value = (int)Height;
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowSizeWidth.Value = (int)Width;
|
||||
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowPositionX.Value = Position.X;
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowPositionY.Value = Position.Y;
|
||||
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowMaximized.Value = WindowState == WindowState.Maximized;
|
||||
|
||||
// Only save rectangle properties if the window is not in a maximized state.
|
||||
if (WindowState != WindowState.Maximized)
|
||||
{
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowSizeHeight.Value = (int)Height;
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowSizeWidth.Value = (int)Width;
|
||||
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowPositionX.Value = Position.X;
|
||||
ConfigurationState.Instance.UI.WindowStartup.WindowPositionY.Value = Position.Y;
|
||||
}
|
||||
|
||||
MainWindowViewModel.SaveConfig();
|
||||
}
|
||||
|
||||
|
@ -477,7 +492,10 @@ namespace Ryujinx.Ava.UI.Windows
|
|||
return;
|
||||
}
|
||||
|
||||
SaveWindowSizePosition();
|
||||
if (ConfigurationState.Instance.RememberWindowState)
|
||||
{
|
||||
SaveWindowSizePosition();
|
||||
}
|
||||
|
||||
ApplicationLibrary.CancelLoading();
|
||||
InputManager.Dispose();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue