diff --git a/build/SharedVersion.props b/build/SharedVersion.props
index d1e9f7b751..95556af160 100644
--- a/build/SharedVersion.props
+++ b/build/SharedVersion.props
@@ -20,6 +20,6 @@
-
+
diff --git a/readme.md b/readme.md
index ccdbbfb967..726a634e1a 100644
--- a/readme.md
+++ b/readme.md
@@ -39,7 +39,7 @@ Examples of UIs built with Avalonia
## JetBrains Rider
-If you need to develop Avalonia app with JetBrains Rider, go and *vote* on [this issue](https://youtrack.jetbrains.com/issue/RIDER-39247) in their tracker. JetBrains won't do things without their users telling them that they want the feature, so only **YOU** can make it happen.
+If you need to develop Avalonia app with JetBrains Rider you can use latest Rider [preview builds](https://www.jetbrains.com/rider/nextversion/).
## Bleeding Edge Builds
diff --git a/src/Avalonia.Base/Metadata/XmlnsPrefixAttribute.cs b/src/Avalonia.Base/Metadata/XmlnsPrefixAttribute.cs
new file mode 100644
index 0000000000..ad017822e4
--- /dev/null
+++ b/src/Avalonia.Base/Metadata/XmlnsPrefixAttribute.cs
@@ -0,0 +1,39 @@
+using System;
+
+namespace Avalonia.Metadata
+{
+ ///
+ /// Use to predefine the prefix associated to an xml namespace in a xaml file
+ ///
+ ///
+ /// example:
+ /// [assembly: XmlnsPrefix("https://github.com/avaloniaui", "av")]
+ /// xaml:
+ /// xmlns:av="https://github.com/avaloniaui"
+ ///
+ [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
+ public sealed class XmlnsPrefixAttribute : Attribute
+ {
+ ///
+ /// Constructor
+ ///
+ /// XML namespce
+ /// recommended prefix
+ public XmlnsPrefixAttribute(string xmlNamespace, string prefix)
+ {
+ XmlNamespace = xmlNamespace ?? throw new ArgumentNullException(nameof(xmlNamespace));
+
+ Prefix = prefix ?? throw new ArgumentNullException(nameof(prefix));
+ }
+
+ ///
+ /// XML Namespace
+ ///
+ public string XmlNamespace { get; }
+
+ ///
+ /// New Xml Namespace
+ ///
+ public string Prefix { get; }
+ }
+}
diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs
index 5d35c773d7..824f62aee5 100644
--- a/src/Avalonia.Native/WindowImplBase.cs
+++ b/src/Avalonia.Native/WindowImplBase.cs
@@ -251,6 +251,9 @@ namespace Avalonia.Native
public bool RawTextInputEvent(uint timeStamp, string text)
{
+ if (_inputRoot is null)
+ return false;
+
Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1);
var args = new RawTextInputEventArgs(_keyboard, timeStamp, _inputRoot, text);
@@ -262,6 +265,9 @@ namespace Avalonia.Native
public bool RawKeyEvent(AvnRawKeyEventType type, uint timeStamp, AvnInputModifiers modifiers, uint key)
{
+ if (_inputRoot is null)
+ return false;
+
Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1);
var args = new RawKeyEventArgs(_keyboard, timeStamp, _inputRoot, (RawKeyEventType)type, (Key)key, (RawInputModifiers)modifiers);
@@ -278,6 +284,9 @@ namespace Avalonia.Native
public void RawMouseEvent(AvnRawMouseEventType type, uint timeStamp, AvnInputModifiers modifiers, AvnPoint point, AvnVector delta)
{
+ if (_inputRoot is null)
+ return;
+
Dispatcher.UIThread.RunJobs(DispatcherPriority.Input + 1);
switch (type)