From 7b8b6374a056191feb2c90d916872107d80e359a Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Thu, 14 Feb 2019 21:17:33 +0000 Subject: [PATCH 1/3] Scaling of 1 on monitors >= FullHD --- src/Avalonia.X11/X11Screens.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.X11/X11Screens.cs b/src/Avalonia.X11/X11Screens.cs index f2a0520c10..38f685ed0d 100644 --- a/src/Avalonia.X11/X11Screens.cs +++ b/src/Avalonia.X11/X11Screens.cs @@ -99,6 +99,8 @@ namespace Avalonia.X11 { if (mon.MWidth == 0) density = 1; + else if (mon.Width <= 1920) + density = 1; else density = X11Screen.GuessPixelDensity(mon.Width, mon.MWidth); } @@ -237,7 +239,14 @@ namespace Avalonia.X11 } else if (pixelDensity == null) { - PixelDensity = GuessPixelDensity(bounds.Width, physicalSize.Value.Width); + if (bounds.Width <= 1920) + { + PixelDensity = 1; + } + else + { + PixelDensity = GuessPixelDensity(bounds.Width, physicalSize.Value.Width); + } } else { From 27565d80bde42495edd9f1861ed3cc2fba50b941 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Fri, 15 Feb 2019 10:24:25 +0000 Subject: [PATCH 2/3] [X11] put FullHd res check inside GuessPixelDensity. --- src/Avalonia.X11/X11Screens.cs | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/Avalonia.X11/X11Screens.cs b/src/Avalonia.X11/X11Screens.cs index 38f685ed0d..ad5cad7eae 100644 --- a/src/Avalonia.X11/X11Screens.cs +++ b/src/Avalonia.X11/X11Screens.cs @@ -11,6 +11,7 @@ namespace Avalonia.X11 { class X11Screens : IScreenImpl { + private const int FullHDWidth = 1920; private IX11Screens _impl; public X11Screens(IX11Screens impl) @@ -99,8 +100,6 @@ namespace Avalonia.X11 { if (mon.MWidth == 0) density = 1; - else if (mon.Width <= 1920) - density = 1; else density = X11Screen.GuessPixelDensity(mon.Width, mon.MWidth); } @@ -239,14 +238,7 @@ namespace Avalonia.X11 } else if (pixelDensity == null) { - if (bounds.Width <= 1920) - { - PixelDensity = 1; - } - else - { - PixelDensity = GuessPixelDensity(bounds.Width, physicalSize.Value.Width); - } + PixelDensity = GuessPixelDensity(bounds.Width, physicalSize.Value.Width); } else { @@ -256,6 +248,6 @@ namespace Avalonia.X11 } public static double GuessPixelDensity(double pixelWidth, double mmWidth) - => Math.Max(1, Math.Round(pixelWidth / mmWidth * 25.4 / 96)); + => pixelWidth <= FullHDWidth ? 1 : Math.Max(1, Math.Round(pixelWidth / mmWidth * 25.4 / 96)); } } From 1a661e657f270a33a6152e56789fa4b2296b76fe Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Fri, 15 Feb 2019 11:14:07 +0000 Subject: [PATCH 3/3] fix error. --- src/Avalonia.X11/X11Screens.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.X11/X11Screens.cs b/src/Avalonia.X11/X11Screens.cs index ad5cad7eae..6bfc8779da 100644 --- a/src/Avalonia.X11/X11Screens.cs +++ b/src/Avalonia.X11/X11Screens.cs @@ -11,7 +11,6 @@ namespace Avalonia.X11 { class X11Screens : IScreenImpl { - private const int FullHDWidth = 1920; private IX11Screens _impl; public X11Screens(IX11Screens impl) @@ -219,6 +218,7 @@ namespace Avalonia.X11 class X11Screen { + private const int FullHDWidth = 1920; public bool Primary { get; } public string Name { get; set; } public PixelRect Bounds { get; set; }