diff --git a/build/AndroidWorkarounds.props b/build/AndroidWorkarounds.props
index 8a5c18e1ae..67947296b3 100644
--- a/build/AndroidWorkarounds.props
+++ b/build/AndroidWorkarounds.props
@@ -5,4 +5,12 @@
+
+
+
+
+
+
+ false
+
diff --git a/src/Avalonia.Dialogs/Avalonia.Dialogs.csproj b/src/Avalonia.Dialogs/Avalonia.Dialogs.csproj
index 8b48b4a92c..3bfb254601 100644
--- a/src/Avalonia.Dialogs/Avalonia.Dialogs.csproj
+++ b/src/Avalonia.Dialogs/Avalonia.Dialogs.csproj
@@ -1,7 +1,6 @@
netstandard2.0
- false
diff --git a/src/Avalonia.Dialogs/ManagedFileChooserViewModel.cs b/src/Avalonia.Dialogs/ManagedFileChooserViewModel.cs
index a6847939d7..03e05e7a75 100644
--- a/src/Avalonia.Dialogs/ManagedFileChooserViewModel.cs
+++ b/src/Avalonia.Dialogs/ManagedFileChooserViewModel.cs
@@ -255,7 +255,7 @@ namespace Avalonia.Dialogs
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
- infos = infos.Where(i => (i.Attributes & (FileAttributes.Hidden | FileAttributes.System)) != 0);
+ infos = infos.Where(i => (i.Attributes & (FileAttributes.Hidden | FileAttributes.System)) == 0);
}
else
{
diff --git a/src/Avalonia.X11/X11KeyTransform.cs b/src/Avalonia.X11/X11KeyTransform.cs
index c68cb04733..87a4174c06 100644
--- a/src/Avalonia.X11/X11KeyTransform.cs
+++ b/src/Avalonia.X11/X11KeyTransform.cs
@@ -52,16 +52,6 @@ namespace Avalonia.X11
{X11Key.Delete, Key.Delete},
{X11Key.KP_Delete, Key.Delete},
{X11Key.Help, Key.Help},
- {X11Key.XK_0, Key.D0},
- {X11Key.XK_1, Key.D1},
- {X11Key.XK_2, Key.D2},
- {X11Key.XK_3, Key.D3},
- {X11Key.XK_4, Key.D4},
- {X11Key.XK_5, Key.D5},
- {X11Key.XK_6, Key.D6},
- {X11Key.XK_7, Key.D7},
- {X11Key.XK_8, Key.D8},
- {X11Key.XK_9, Key.D9},
{X11Key.A, Key.A},
{X11Key.B, Key.B},
{X11Key.C, Key.C},
@@ -114,8 +104,8 @@ namespace Avalonia.X11
{X11Key.x, Key.X},
{X11Key.y, Key.Y},
{X11Key.z, Key.Z},
- //{ X11Key.?, Key.LWin }
- //{ X11Key.?, Key.RWin }
+ {X11Key.Meta_L, Key.LWin },
+ {X11Key.Meta_R, Key.RWin },
{X11Key.Menu, Key.Apps},
//{ X11Key.?, Key.Sleep }
{X11Key.KP_0, Key.NumPad0},
@@ -185,20 +175,51 @@ namespace Avalonia.X11
//{ X11Key.?, Key.SelectMedia }
//{ X11Key.?, Key.LaunchApplication1 }
//{ X11Key.?, Key.LaunchApplication2 }
- {X11Key.semicolon, Key.OemSemicolon},
+ {X11Key.minus, Key.OemMinus},
+ {X11Key.underscore, Key.OemMinus},
{X11Key.plus, Key.OemPlus},
{X11Key.equal, Key.OemPlus},
+ {X11Key.bracketleft, Key.OemOpenBrackets},
+ {X11Key.braceleft, Key.OemOpenBrackets},
+ {X11Key.bracketright, Key.OemCloseBrackets},
+ {X11Key.braceright, Key.OemCloseBrackets},
+ {X11Key.backslash, Key.OemPipe},
+ {X11Key.bar, Key.OemPipe},
+ {X11Key.semicolon, Key.OemSemicolon},
+ {X11Key.colon, Key.OemSemicolon},
+ {X11Key.apostrophe, Key.OemQuotes},
+ {X11Key.quotedbl, Key.OemQuotes},
{X11Key.comma, Key.OemComma},
- {X11Key.minus, Key.OemMinus},
+ {X11Key.less, Key.OemComma},
{X11Key.period, Key.OemPeriod},
+ {X11Key.greater, Key.OemPeriod},
{X11Key.slash, Key.Oem2},
+ {X11Key.question, Key.Oem2},
{X11Key.grave, Key.OemTilde},
+ {X11Key.asciitilde, Key.OemTilde},
+ {X11Key.XK_1, Key.D1},
+ {X11Key.exclam, Key.D1},
+ {X11Key.XK_2, Key.D2},
+ {X11Key.at, Key.D2},
+ {X11Key.XK_3, Key.D3},
+ {X11Key.numbersign, Key.D3},
+ {X11Key.XK_4, Key.D4},
+ {X11Key.dollar, Key.D4},
+ {X11Key.XK_5, Key.D5},
+ {X11Key.percent, Key.D5},
+ {X11Key.XK_6, Key.D6},
+ {X11Key.asciicircum, Key.D6},
+ {X11Key.XK_7, Key.D7},
+ {X11Key.ampersand, Key.D7},
+ {X11Key.XK_8, Key.D8},
+ {X11Key.asterisk, Key.D8},
+ {X11Key.XK_9, Key.D9},
+ {X11Key.parenleft, Key.D9},
+ {X11Key.XK_0, Key.D0},
+ {X11Key.parenright, Key.D0},
+
//{ X11Key.?, Key.AbntC1 }
//{ X11Key.?, Key.AbntC2 }
- {X11Key.bracketleft, Key.OemOpenBrackets},
- {X11Key.backslash, Key.OemPipe},
- {X11Key.bracketright, Key.OemCloseBrackets},
- {X11Key.apostrophe, Key.OemQuotes},
//{ X11Key.?, Key.Oem8 }
//{ X11Key.?, Key.Oem102 }
//{ X11Key.?, Key.ImeProcessed }
diff --git a/src/Markup/Avalonia.Markup.Xaml/XamlIl/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs b/src/Markup/Avalonia.Markup.Xaml/XamlIl/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs
index bbacef43dd..548f0161d6 100644
--- a/src/Markup/Avalonia.Markup.Xaml/XamlIl/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs
+++ b/src/Markup/Avalonia.Markup.Xaml/XamlIl/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs
@@ -164,6 +164,8 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
public bool IsStatic => true;
public string Name { get; protected set; }
public IXamlIlType DeclaringType { get; }
+ public IXamlIlMethod MakeGenericMethod(IReadOnlyList typeArguments)
+ => throw new System.NotSupportedException();
public bool Equals(IXamlIlMethod other) =>
diff --git a/src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github b/src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github
index c2ec091f79..c7155c5f6c 160000
--- a/src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github
+++ b/src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github
@@ -1 +1 @@
-Subproject commit c2ec091f79fb4e1eea629bc823c9c24da7050022
+Subproject commit c7155c5f6c1a5153ee2d8cd78e5d1524dd6744cf
diff --git a/src/Windows/Avalonia.Win32/WindowsMountedVolumeInfoListener.cs b/src/Windows/Avalonia.Win32/WindowsMountedVolumeInfoListener.cs
index 3e2941814f..102e027584 100644
--- a/src/Windows/Avalonia.Win32/WindowsMountedVolumeInfoListener.cs
+++ b/src/Windows/Avalonia.Win32/WindowsMountedVolumeInfoListener.cs
@@ -11,7 +11,7 @@ namespace Avalonia.Win32
internal class WindowsMountedVolumeInfoListener : IDisposable
{
private readonly CompositeDisposable _disposables;
- private readonly ObservableCollection _targetObs;
+ private readonly ObservableCollection _targetObs = new ObservableCollection();
private bool _beenDisposed = false;
private ObservableCollection mountedDrives;
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs
index 7281542bc1..b1abc9ea54 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs
@@ -309,8 +309,12 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
}
}
- [Fact]
- public void Binding_To_TextBlock_Text_With_StringConverter_Works()
+ [Theory,
+ InlineData(@"Hello \{0\}"),
+ InlineData(@"'Hello {0}'"),
+ InlineData(@"Hello {0}")]
+
+ public void Binding_To_TextBlock_Text_With_StringConverter_Works(string fmt)
{
using (UnitTestApplication.Start(TestServices.StyledWindow))
{
@@ -318,8 +322,8 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
-
-";
+
+";
var loader = new AvaloniaXamlLoader();
var window = (Window)loader.Load(xaml);
var textBlock = window.FindControl("textBlock");
@@ -331,8 +335,10 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
}
}
- [Fact(Skip="Issue #2592")]
- public void MultiBinding_To_TextBlock_Text_With_StringConverter_Works()
+ [Theory,
+ InlineData("{}{0} {1}!"),
+ InlineData(@"\{0\} \{1\}!")]
+ public void MultiBinding_To_TextBlock_Text_With_StringConverter_Works(string fmt)
{
using (UnitTestApplication.Start(TestServices.StyledWindow))
{
@@ -342,7 +348,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
xmlns:local='clr-namespace:Avalonia.Markup.Xaml.UnitTests.Xaml;assembly=Avalonia.Markup.Xaml.UnitTests'>
-
+