From 42367440a57fe8589594e3972d71db7f795ac10c Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 24 Jul 2018 21:07:08 +0100 Subject: [PATCH] implement GetScaleFactor for GLWindow. --- src/Avalonia.Windowing/Bindings/GlWindow.cs | 8 ++++++++ src/Avalonia.Windowing/Bindings/IWindowWrapper.cs | 1 + src/Avalonia.Windowing/WIndowingPlatform.cs | 6 ------ src/Avalonia.Windowing/WindowImpl.cs | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Windowing/Bindings/GlWindow.cs b/src/Avalonia.Windowing/Bindings/GlWindow.cs index 864cf76dcf..334453e74a 100644 --- a/src/Avalonia.Windowing/Bindings/GlWindow.cs +++ b/src/Avalonia.Windowing/Bindings/GlWindow.cs @@ -25,6 +25,9 @@ namespace Avalonia.Windowing.Bindings [DllImport("winit_wrapper")] private static extern LogicalSize winit_gl_window_get_size(IntPtr handle); + [DllImport("winit_wrapper")] + private static extern double winit_gl_window_get_dpi_scale_factor(IntPtr handle); + [DllImport("winit_wrapper")] private static extern LogicalPosition winit_gl_window_get_position(IntPtr handle); @@ -89,6 +92,11 @@ namespace Avalonia.Windowing.Bindings return (size.Width, size.Height); } + public double GetScaleFactor () + { + return winit_gl_window_get_dpi_scale_factor(_handle); + } + public (double, double) GetFramebufferSize() { return GetSize(); diff --git a/src/Avalonia.Windowing/Bindings/IWindowWrapper.cs b/src/Avalonia.Windowing/Bindings/IWindowWrapper.cs index 76227cdf86..09319c9bb0 100644 --- a/src/Avalonia.Windowing/Bindings/IWindowWrapper.cs +++ b/src/Avalonia.Windowing/Bindings/IWindowWrapper.cs @@ -12,6 +12,7 @@ namespace Avalonia.Windowing.Bindings void SetTitle(string title); void SetSize(double width, double height); + double GetScaleFactor(); (double, double) GetSize(); (double, double) GetPosition(); diff --git a/src/Avalonia.Windowing/WIndowingPlatform.cs b/src/Avalonia.Windowing/WIndowingPlatform.cs index b2baea9374..a695b7d8db 100644 --- a/src/Avalonia.Windowing/WIndowingPlatform.cs +++ b/src/Avalonia.Windowing/WIndowingPlatform.cs @@ -10,12 +10,6 @@ using Avalonia.Windowing.Bindings; namespace Avalonia.Windowing { - public class PlatformSettings : IPlatformSettings - { - public Size DoubleClickSize => new Size(4, 4); - public TimeSpan DoubleClickTime => TimeSpan.FromMilliseconds(200); - } - public class DummyPlatformHandle : IPlatformHandle { public IntPtr Handle => IntPtr.Zero; diff --git a/src/Avalonia.Windowing/WindowImpl.cs b/src/Avalonia.Windowing/WindowImpl.cs index d48ebdaae4..6d0658b477 100644 --- a/src/Avalonia.Windowing/WindowImpl.cs +++ b/src/Avalonia.Windowing/WindowImpl.cs @@ -55,7 +55,7 @@ namespace Avalonia.Windowing } } - public double Scaling => 192 / 96; + public double Scaling => _windowWrapper.GetScaleFactor(); public IEnumerable Surfaces => new List() { _windowWrapper };