From 9539979a6ec29be89b5fa88e214b84156563e525 Mon Sep 17 00:00:00 2001 From: ARSolog Date: Sat, 21 Oct 2017 01:33:04 +0300 Subject: [PATCH 1/2] Update DataAnnotationsValidationPluginTests.cs fix unit test to non 'en-us' CultureInfo --- .../Data/Plugins/DataAnnotationsValidationPluginTests.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/Avalonia.Markup.UnitTests/Data/Plugins/DataAnnotationsValidationPluginTests.cs b/tests/Avalonia.Markup.UnitTests/Data/Plugins/DataAnnotationsValidationPluginTests.cs index 3002dc516f..6663457add 100644 --- a/tests/Avalonia.Markup.UnitTests/Data/Plugins/DataAnnotationsValidationPluginTests.cs +++ b/tests/Avalonia.Markup.UnitTests/Data/Plugins/DataAnnotationsValidationPluginTests.cs @@ -49,6 +49,8 @@ namespace Avalonia.Markup.UnitTests.Data.Plugins var accessor = inpcAccessorPlugin.Start(new WeakReference(data), nameof(data.Between5And10)); var validator = validatorPlugin.Start(new WeakReference(data), nameof(data.Between5And10), accessor); var result = new List(); + + var errmsg = new RangeAttribute(5, 10).FormatErrorMessage(nameof(Data.Between5And10)); validator.Subscribe(x => result.Add(x)); validator.SetValue(3, BindingPriority.LocalValue); @@ -59,12 +61,12 @@ namespace Avalonia.Markup.UnitTests.Data.Plugins { new BindingNotification(5), new BindingNotification( - new ValidationException("The field Between5And10 must be between 5 and 10."), + new ValidationException(errmsg), BindingErrorType.DataValidationError, 3), new BindingNotification(7), new BindingNotification( - new ValidationException("The field Between5And10 must be between 5 and 10."), + new ValidationException(errmsg), BindingErrorType.DataValidationError, 11), }, result); From bbfc07b98da2880d8bf6ccdd4b043a2bd80b8342 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Sun, 22 Oct 2017 18:16:58 +0300 Subject: [PATCH 2/2] Screw wayland, we aren't dealing with "you can't set window coordinates" right now --- src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs | 3 +++ src/Gtk/Avalonia.Gtk3/Interop/Native.cs | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs b/src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs index 2cf893346f..b687d9d447 100644 --- a/src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs +++ b/src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs @@ -35,6 +35,9 @@ namespace Avalonia.Gtk3 X11.XInitThreads(); }catch{} Resolver.Resolve(); + if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + using (var backends = new Utf8Buffer("x11")) + Native.GdkSetAllowedBackends?.Invoke(backends); Native.GtkInit(0, IntPtr.Zero); var disp = Native.GdkGetDefaultDisplay(); DisplayClassName = diff --git a/src/Gtk/Avalonia.Gtk3/Interop/Native.cs b/src/Gtk/Avalonia.Gtk3/Interop/Native.cs index 3b9007786d..3e945798d4 100644 --- a/src/Gtk/Avalonia.Gtk3/Interop/Native.cs +++ b/src/Gtk/Avalonia.Gtk3/Interop/Native.cs @@ -48,10 +48,13 @@ namespace Avalonia.Gtk3.Interop public delegate void gtk_main_iteration(); [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gtk)] - public delegate GtkWindow gtk_window_new(GtkWindowType windowType); - + public delegate GtkWindow gtk_window_new(GtkWindowType windowType); + [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gtk)] public delegate IntPtr gtk_init(int argc, IntPtr argv); + + [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk, optional: true)] + public delegate IntPtr gdk_set_allowed_backends (Utf8Buffer backends); [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gtk)] public delegate void gtk_window_present(GtkWindow gtkWindow); @@ -393,6 +396,7 @@ namespace Avalonia.Gtk3.Interop public static D.gtk_window_new GtkWindowNew; public static D.gtk_window_set_icon GtkWindowSetIcon; public static D.gtk_window_set_modal GtkWindowSetModal; + public static D.gdk_set_allowed_backends GdkSetAllowedBackends; public static D.gtk_init GtkInit; public static D.gtk_window_present GtkWindowPresent; public static D.gtk_widget_hide GtkWidgetHide;