diff --git a/src/Ryujinx.Common/SystemInterop/ForceDpiAware.cs b/src/Ryujinx.Common/SystemInterop/ForceDpiAware.cs index 8dc0c5e78..0bafc8286 100644 --- a/src/Ryujinx.Common/SystemInterop/ForceDpiAware.cs +++ b/src/Ryujinx.Common/SystemInterop/ForceDpiAware.cs @@ -28,7 +28,7 @@ namespace Ryujinx.Common.SystemInterop } } - public static double GetActualScaleFactor(WindowingSystemType windowingSystem) + public static void ConfigureDPIScaling(WindowingSystemType windowingSystem) { double userDpiScale = 96.0; @@ -91,15 +91,6 @@ namespace Ryujinx.Common.SystemInterop { Logger.Warning?.Print(LogClass.Application, $"Couldn't determine monitor DPI: {e.Message}"); } - - return userDpiScale; - } - - public static double GetWindowScaleFactor(WindowingSystemType windowingSystem) - { - double userDpiScale = GetActualScaleFactor(windowingSystem); - - return Math.Min(userDpiScale / StandardDpiScale, MaxScaleFactor); } } } diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index de8be0ef6..48d6fb5e3 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -30,7 +30,6 @@ namespace Ryujinx.Ava { internal partial class Program { - public static double WindowScaleFactor { get; set; } public static double DesktopScaleFactor { get; set; } = 1.0; public static string Version { get; private set; } public static string ConfigurationPath { get; private set; } @@ -139,7 +138,7 @@ namespace Ryujinx.Ava ReloadConfig(); - WindowScaleFactor = ForceDpiAware.GetWindowScaleFactor(builder.GetWindowingSystemType()); + ForceDpiAware.ConfigureDPIScaling(builder.GetWindowingSystemType()); // Logging system information. PrintSystemInfo(); diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs index f6bf43795..b93245d21 100644 --- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs +++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs @@ -232,11 +232,11 @@ namespace Ryujinx.Ava.UI.Views.Main ); // Correctly size window when 'TitleBar' is enabled (Nov. 14, 2024) - double barsHeight = ((Window.StatusBarHeight + Window.MenuBarHeight) + - (ConfigurationState.Instance.ShowOldUI ? (int)Window.TitleBar.Height : 0)); + double barsHeight = Window.StatusBarHeight + Window.MenuBarHeight + + (ConfigurationState.Instance.ShowOldUI ? (int)Window.TitleBar.Height : 0); - double windowWidthScaled = (resolutionWidth * Program.WindowScaleFactor); - double windowHeightScaled = ((resolutionHeight + barsHeight) * Program.WindowScaleFactor); + double windowWidthScaled = resolutionWidth; + double windowHeightScaled = resolutionHeight + barsHeight; Dispatcher.UIThread.Post(() => { diff --git a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs index 2a7bfa8ef..a5d930a97 100644 --- a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs +++ b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs @@ -442,8 +442,8 @@ namespace Ryujinx.Ava.UI.Windows if (!ConfigurationState.Instance.RememberWindowState) { // Correctly size window when 'TitleBar' is enabled (Nov. 14, 2024) - ViewModel.WindowHeight = (720 + StatusBarHeight + MenuBarHeight + TitleBarHeight) * Program.WindowScaleFactor; - ViewModel.WindowWidth = 1280 * Program.WindowScaleFactor; + ViewModel.WindowHeight = 720 + StatusBarHeight + MenuBarHeight + TitleBarHeight; + ViewModel.WindowWidth = 1280; WindowState = WindowState.Normal; WindowStartupLocation = WindowStartupLocation.CenterScreen; @@ -454,8 +454,8 @@ namespace Ryujinx.Ava.UI.Windows PixelPoint savedPoint = new(ConfigurationState.Instance.UI.WindowStartup.WindowPositionX, ConfigurationState.Instance.UI.WindowStartup.WindowPositionY); - ViewModel.WindowHeight = ConfigurationState.Instance.UI.WindowStartup.WindowSizeHeight * Program.WindowScaleFactor; - ViewModel.WindowWidth = ConfigurationState.Instance.UI.WindowStartup.WindowSizeWidth * Program.WindowScaleFactor; + ViewModel.WindowHeight = ConfigurationState.Instance.UI.WindowStartup.WindowSizeHeight; + ViewModel.WindowWidth = ConfigurationState.Instance.UI.WindowStartup.WindowSizeWidth; ViewModel.WindowState = ConfigurationState.Instance.UI.WindowStartup.WindowMaximized.Value ? WindowState.Maximized : WindowState.Normal; @@ -477,10 +477,8 @@ namespace Ryujinx.Ava.UI.Windows // Only save rectangle properties if the window is not in a maximized state. if (WindowState != WindowState.Maximized) { - // Since scaling is being applied to the loaded settings from disk (see SetWindowSizePosition() above), scaling should be removed from width/height before saving out to disk - // as well - otherwise anyone not using a 1.0 scale factor their window will increase in size with every subsequent launch of the program when scaling is applied (Nov. 14, 2024) - ConfigurationState.Instance.UI.WindowStartup.WindowSizeHeight.Value = (int)(Height / Program.WindowScaleFactor); - ConfigurationState.Instance.UI.WindowStartup.WindowSizeWidth.Value = (int)(Width / Program.WindowScaleFactor); + 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;