From 153a4532ae1ba2b339a48baad37759c39a0fbbc2 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sun, 7 May 2017 15:38:28 +0200 Subject: [PATCH 01/16] Added failing test for #886. --- ...emsPresenterTests_Virtualization_Simple.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs index 2f98cccadf..1da9cfce76 100644 --- a/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs +++ b/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs @@ -206,6 +206,30 @@ namespace Avalonia.Controls.UnitTests.Presenters Assert.Equal(expected, actual); } + [Fact] + public void Inserting_Items_Before_Visibile_Containers_Should_Update_Containers() + { + var target = CreateTarget(); + + target.ApplyTemplate(); + target.Measure(new Size(100, 100)); + target.Arrange(new Rect(0, 0, 100, 100)); + + ((ILogicalScrollable)target).Offset = new Vector(0, 5); + + var expected = Enumerable.Range(5, 10).Select(x => $"Item {x}").ToList(); + var items = (ObservableCollection)target.Items; + var actual = target.Panel.Children.Select(x => x.DataContext).ToList(); + + Assert.Equal(expected, actual); + + items.Insert(0, "Inserted"); + + expected = Enumerable.Range(4, 10).Select(x => $"Item {x}").ToList(); + actual = target.Panel.Children.Select(x => x.DataContext).ToList(); + Assert.Equal(expected, actual); + } + [Fact] public void Removing_First_Materialized_Item_Should_Update_Containers() { @@ -477,7 +501,6 @@ namespace Avalonia.Controls.UnitTests.Presenters target.Arrange(new Rect(0, 0, 100, 100)); var expected = Enumerable.Range(0, 6).Select(x => $"Item {x}").ToList(); - var items = (ObservableCollection)target.Items; var actual = target.Panel.Children.Select(x => x.DataContext).ToList(); Assert.Equal(expected, actual); From f6786834723a8aff0d6161cda64625e950ac3880 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sun, 7 May 2017 15:39:46 +0200 Subject: [PATCH 02/16] Handle inserts before currently visible item. If a virtualized list was scrolled and an item added before the first visible item, then the list wasn't updated. --- src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs index 96190720ae..20602d5475 100644 --- a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs +++ b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs @@ -155,8 +155,7 @@ namespace Avalonia.Controls.Presenters case NotifyCollectionChangedAction.Add: CreateAndRemoveContainers(); - if (e.NewStartingIndex >= FirstIndex && - e.NewStartingIndex < NextIndex) + if (e.NewStartingIndex < NextIndex) { RecycleContainers(); } From 2673fd090b2fe8e70088081fea4f9a4394cb0073 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 8 May 2017 23:43:56 +0200 Subject: [PATCH 03/16] NCrunch is noisy. I wish you'd stop making this useless changes. --- .ncrunch/Avalonia.Base.UnitTests.net461.v3.ncrunchproject | 5 +++++ .../Avalonia.Controls.UnitTests.net461.v3.ncrunchproject | 5 +++++ .ncrunch/Avalonia.Input.UnitTests.net461.v3.ncrunchproject | 5 +++++ ...Avalonia.Interactivity.UnitTests.net461.v3.ncrunchproject | 5 +++++ ...a.Interactivity.UnitTests.netcoreapp1.1.v3.ncrunchproject | 5 +++++ .ncrunch/Avalonia.Layout.UnitTests.net461.v3.ncrunchproject | 5 +++++ .ncrunch/Avalonia.Markup.UnitTests.net461.v3.ncrunchproject | 5 +++++ .../Avalonia.Markup.Xaml.UnitTests.net461.v3.ncrunchproject | 5 +++++ .ncrunch/Avalonia.Styling.UnitTests.net461.v3.ncrunchproject | 5 +++++ .ncrunch/Avalonia.UnitTests.net461.v3.ncrunchproject | 5 +++++ .ncrunch/Direct3DInteropSample.v3.ncrunchproject | 5 +++++ 11 files changed, 55 insertions(+) create mode 100644 .ncrunch/Avalonia.Base.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.Controls.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.Input.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.Interactivity.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.Interactivity.UnitTests.netcoreapp1.1.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.Layout.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.Markup.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.Markup.Xaml.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.Styling.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Avalonia.UnitTests.net461.v3.ncrunchproject create mode 100644 .ncrunch/Direct3DInteropSample.v3.ncrunchproject diff --git a/.ncrunch/Avalonia.Base.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Base.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Base.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Controls.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Controls.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Input.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Input.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Input.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Interactivity.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Interactivity.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Interactivity.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Interactivity.UnitTests.netcoreapp1.1.v3.ncrunchproject b/.ncrunch/Avalonia.Interactivity.UnitTests.netcoreapp1.1.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Interactivity.UnitTests.netcoreapp1.1.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Layout.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Layout.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Layout.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Markup.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Markup.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Styling.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Styling.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.Styling.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.UnitTests.net461.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Avalonia.UnitTests.net461.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file diff --git a/.ncrunch/Direct3DInteropSample.v3.ncrunchproject b/.ncrunch/Direct3DInteropSample.v3.ncrunchproject new file mode 100644 index 0000000000..6800b4a3fe --- /dev/null +++ b/.ncrunch/Direct3DInteropSample.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + True + + \ No newline at end of file From b87b3bb6da248ce9dce55c59467e2ded898c5b8c Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Tue, 9 May 2017 21:01:19 +0300 Subject: [PATCH 04/16] Updated Skia to 1.57.1 --- build/SkiaSharp.props | 2 +- packages.cake | 21 +++++++++++--------- src/Skia/Avalonia.Skia/DrawingContextImpl.cs | 4 ++-- src/Skia/Avalonia.Skia/FormattedTextImpl.cs | 2 +- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props index bd6b4ebc53..a4b94cacfa 100644 --- a/build/SkiaSharp.props +++ b/build/SkiaSharp.props @@ -1,5 +1,5 @@  - + diff --git a/packages.cake b/packages.cake index f030c73a06..2fb089ba96 100644 --- a/packages.cake +++ b/packages.cake @@ -425,10 +425,7 @@ public class Packages { new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }, new NuSpecDependency() { Id = "SkiaSharp", Version = SkiaSharpVersion }, - //netstandard1.3 - new NuSpecDependency() { Id = "Avalonia", TargetFramework = "netstandard1.3", Version = parameters.Version }, - new NuSpecDependency() { Id = "SkiaSharp", TargetFramework = "netstandard1.3", Version = SkiaSharpVersion }, - new NuSpecDependency() { Id = "NETStandard.Library", TargetFramework = "netstandard1.3", Version = "1.6.0" } + new NuSpecDependency() { Id = "Avalonia.Skia.Linux.Natives", Version = SkiaSharpVersion } }, Files = new [] { @@ -446,11 +443,17 @@ public class Packages Id = "Avalonia.Desktop", Dependencies = new [] { - new NuSpecDependency() { Id = "Avalonia.Win32", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Direct2D1", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Gtk", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Cairo", Version = parameters.Version }, - new NuSpecDependency() { Id = "Avalonia.Skia.Desktop", Version = parameters.Version } + //Full .NET + new NuSpecDependency() { Id = "Avalonia.Direct2D1", TargetFramework="net45", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Gtk", TargetFramework="net45", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Cairo", TargetFramework="net45", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Win32", TargetFramework="net45", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Skia.Desktop", TargetFramework="net45", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="net45", Version = parameters.Version }, + //.NET Core + new NuSpecDependency() { Id = "Avalonia.Win32", TargetFramework="netcoreapp1.1", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Skia.Desktop", TargetFramework="netcoreapp1.1", Version = parameters.Version }, + new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="netcoreapp1.1", Version = parameters.Version } }, Files = new NuSpecContent[] { diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs index 1125863e72..4a9f2c6572 100644 --- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs +++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs @@ -285,7 +285,7 @@ namespace Avalonia.Skia paint.StrokeCap = SKStrokeCap.Butt; if (pen.LineJoin == PenLineJoin.Miter) - paint.StrokeJoin = SKStrokeJoin.Mitter; + paint.StrokeJoin = SKStrokeJoin.Miter; else if (pen.LineJoin == PenLineJoin.Round) paint.StrokeJoin = SKStrokeJoin.Round; else @@ -397,7 +397,7 @@ namespace Avalonia.Skia public void PopOpacityMask() { - Canvas.SaveLayer(new SKPaint { XferMode = SKXferMode.DstIn }); + Canvas.SaveLayer(new SKPaint { BlendMode = SKBlendMode.DstIn }); using (var paintWrapper = maskStack.Pop()) { Canvas.DrawPaint(paintWrapper.Paint); diff --git a/src/Skia/Avalonia.Skia/FormattedTextImpl.cs b/src/Skia/Avalonia.Skia/FormattedTextImpl.cs index 133d9cd789..8568c80c04 100644 --- a/src/Skia/Avalonia.Skia/FormattedTextImpl.cs +++ b/src/Skia/Avalonia.Skia/FormattedTextImpl.cs @@ -42,7 +42,7 @@ namespace Avalonia.Skia _paint.Typeface = skiaTypeface; _paint.TextSize = (float)(typeface?.FontSize ?? 12); _paint.TextAlign = textAlignment.ToSKTextAlign(); - _paint.XferMode = SKXferMode.Src; + _paint.BlendMode = SKBlendMode.Src; _wrapping = wrapping; _constraint = constraint; From f3229246219e81f107c5e31c542ca700e6b636ee Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 11 May 2017 00:12:08 +0300 Subject: [PATCH 05/16] Use GTK3/Skia by default --- build/SkiaSharp.Desktop.props | 5 ----- build/SkiaSharp.props | 1 + packages.cake | 5 ++++- src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs | 6 +++--- src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs | 6 +++--- src/Gtk/Avalonia.Gtk3/Properties/AssemblyInfo.cs | 5 +++++ .../Avalonia.Skia.Desktop.NetStandard.csproj | 1 - src/Skia/Avalonia.Skia.Desktop/Properties/AssemblyInfo.cs | 4 +++- 8 files changed, 19 insertions(+), 14 deletions(-) delete mode 100644 build/SkiaSharp.Desktop.props diff --git a/build/SkiaSharp.Desktop.props b/build/SkiaSharp.Desktop.props deleted file mode 100644 index bb6b29cfa6..0000000000 --- a/build/SkiaSharp.Desktop.props +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props index a4b94cacfa..73e9752e7f 100644 --- a/build/SkiaSharp.props +++ b/build/SkiaSharp.props @@ -1,5 +1,6 @@  + diff --git a/packages.cake b/packages.cake index 2fb089ba96..1e8e356694 100644 --- a/packages.cake +++ b/packages.cake @@ -7,6 +7,7 @@ public class Packages public FilePath[] BinFiles { get; private set; } public string NugetPackagesDir {get; private set;} public string SkiaSharpVersion {get; private set; } + public string SkiaSharpLinuxVersion {get; private set; } public Packages(ICakeContext context, Parameters parameters) { // NUGET NUSPECS @@ -75,6 +76,7 @@ public class Packages var SpracheVersion = packageVersions["Sprache"].FirstOrDefault().Item1; var SystemReactiveVersion = packageVersions["System.Reactive"].FirstOrDefault().Item1; SkiaSharpVersion = packageVersions["SkiaSharp"].FirstOrDefault().Item1; + SkiaSharpLinuxVersion = packageVersions["Avalonia.Skia.Linux.Natives"].FirstOrDefault().Item1; var SharpDXVersion = packageVersions["SharpDX"].FirstOrDefault().Item1; var SharpDXDirect2D1Version = packageVersions["SharpDX.Direct2D1"].FirstOrDefault().Item1; var SharpDXDirect3D11Version = packageVersions["SharpDX.Direct3D11"].FirstOrDefault().Item1; @@ -85,6 +87,7 @@ public class Packages context.Information("Package: Sprache, version: {0}", SpracheVersion); context.Information("Package: System.Reactive, version: {0}", SystemReactiveVersion); context.Information("Package: SkiaSharp, version: {0}", SkiaSharpVersion); + context.Information("Package: Avalonia.Skia.Linux.Natives, version: {0}", SkiaSharpLinuxVersion); context.Information("Package: SharpDX, version: {0}", SharpDXVersion); context.Information("Package: SharpDX.Direct2D1, version: {0}", SharpDXDirect2D1Version); context.Information("Package: SharpDX.Direct3D11, version: {0}", SharpDXDirect3D11Version); @@ -425,7 +428,7 @@ public class Packages { new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }, new NuSpecDependency() { Id = "SkiaSharp", Version = SkiaSharpVersion }, - new NuSpecDependency() { Id = "Avalonia.Skia.Linux.Natives", Version = SkiaSharpVersion } + new NuSpecDependency() { Id = "Avalonia.Skia.Linux.Natives", Version = SkiaSharpLinuxVersion } }, Files = new [] { diff --git a/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs b/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs index 63457cc1a2..dc7d815ddc 100644 --- a/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs +++ b/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs @@ -40,6 +40,6 @@ using System.Runtime.InteropServices; [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: ExportRenderingSubsystem(OperatingSystemType.WinNT, 2, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] -[assembly: ExportRenderingSubsystem(OperatingSystemType.Linux, 1, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] -[assembly: ExportRenderingSubsystem(OperatingSystemType.OSX, 2, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] +[assembly: ExportRenderingSubsystem(OperatingSystemType.WinNT, 3, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] +[assembly: ExportRenderingSubsystem(OperatingSystemType.Linux, 2, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] +[assembly: ExportRenderingSubsystem(OperatingSystemType.OSX, 3, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] diff --git a/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs b/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs index f0e9ab4ccb..6d1eb24836 100644 --- a/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs +++ b/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs @@ -22,7 +22,7 @@ using System.Runtime.CompilerServices; // and "{Major}.{Minor}.{Build}.*" will update just the revision. [assembly: AssemblyVersion("1.0.*")] -[assembly: ExportWindowingSubsystem(OperatingSystemType.WinNT, 2, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] -[assembly: ExportWindowingSubsystem(OperatingSystemType.Linux, 1, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] -[assembly: ExportWindowingSubsystem(OperatingSystemType.OSX, 2, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] +[assembly: ExportWindowingSubsystem(OperatingSystemType.WinNT, 3, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] +[assembly: ExportWindowingSubsystem(OperatingSystemType.Linux, 2, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] +[assembly: ExportWindowingSubsystem(OperatingSystemType.OSX, 3, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] diff --git a/src/Gtk/Avalonia.Gtk3/Properties/AssemblyInfo.cs b/src/Gtk/Avalonia.Gtk3/Properties/AssemblyInfo.cs index 72e6388531..6b040240c4 100644 --- a/src/Gtk/Avalonia.Gtk3/Properties/AssemblyInfo.cs +++ b/src/Gtk/Avalonia.Gtk3/Properties/AssemblyInfo.cs @@ -2,6 +2,8 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using Avalonia.Gtk3; +using Avalonia.Platform; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -28,3 +30,6 @@ using System.Runtime.InteropServices; // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ExportWindowingSubsystem(OperatingSystemType.WinNT, 2, "GTK3", typeof(Gtk3Platform), nameof(Gtk3Platform.Initialize))] +[assembly: ExportWindowingSubsystem(OperatingSystemType.Linux, 1, "GTK3", typeof(Gtk3Platform), nameof(Gtk3Platform.Initialize))] +[assembly: ExportWindowingSubsystem(OperatingSystemType.OSX, 2, "GTK3", typeof(Gtk3Platform), nameof(Gtk3Platform.Initialize))] \ No newline at end of file diff --git a/src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj b/src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj index 1a6b574e7b..ca9f6c76e1 100644 --- a/src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj +++ b/src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj @@ -40,7 +40,6 @@ - \ No newline at end of file diff --git a/src/Skia/Avalonia.Skia.Desktop/Properties/AssemblyInfo.cs b/src/Skia/Avalonia.Skia.Desktop/Properties/AssemblyInfo.cs index 69a3f34489..03ebc94a4c 100644 --- a/src/Skia/Avalonia.Skia.Desktop/Properties/AssemblyInfo.cs +++ b/src/Skia/Avalonia.Skia.Desktop/Properties/AssemblyInfo.cs @@ -37,4 +37,6 @@ using System.Runtime.InteropServices; [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: ExportRenderingSubsystem(OperatingSystemType.WinNT, 3, "Skia", typeof(SkiaPlatform), nameof(SkiaPlatform.Initialize))] +[assembly: ExportRenderingSubsystem(OperatingSystemType.WinNT, 2, "Skia", typeof(SkiaPlatform), nameof(SkiaPlatform.Initialize))] +[assembly: ExportRenderingSubsystem(OperatingSystemType.OSX, 1, "Skia", typeof(SkiaPlatform), nameof(SkiaPlatform.Initialize))] +[assembly: ExportRenderingSubsystem(OperatingSystemType.Linux, 1, "Skia", typeof(SkiaPlatform), nameof(SkiaPlatform.Initialize))] \ No newline at end of file From c611fdc92b4510c332e84b365622a3e48a8a30bb Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 11 May 2017 02:32:25 +0300 Subject: [PATCH 06/16] Target AnyCPU --- src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj b/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj index ca1c6508f2..b8dd79eca9 100644 --- a/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj +++ b/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj @@ -50,7 +50,7 @@ true true pdbonly - x86 + AnyCPU prompt MinimumRecommendedRules.ruleset From a9bf65d6652f9028b345f826bae0a88b5e53dabc Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 11 May 2017 14:28:10 +0300 Subject: [PATCH 07/16] Reference SkiaProps from ControlCatalog --- build/SkiaSharp.props | 2 +- samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props index 73e9752e7f..77d7dda54a 100644 --- a/build/SkiaSharp.props +++ b/build/SkiaSharp.props @@ -1,6 +1,6 @@  - + diff --git a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj index 3ca8640d40..8c96442642 100644 --- a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj +++ b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj @@ -142,6 +142,7 @@ + \ No newline at end of file From 894556c27416229cc26a569945e75a6888a50b4a Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 11 May 2017 15:23:29 +0300 Subject: [PATCH 08/16] Include native libs to zip archive --- build.cake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.cake b/build.cake index 1e29b33fc1..c158847418 100644 --- a/build.cake +++ b/build.cake @@ -279,6 +279,8 @@ Task("Zip-Files") Zip(parameters.ZipSourceControlCatalogDesktopDirs, parameters.ZipTargetControlCatalogDesktopDirs, GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dll") + + GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.so") + + GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dylib") + GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.exe")); }); From 3fb9ad120ed86916abc411164288319a82cdf511 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 11 May 2017 16:09:08 +0300 Subject: [PATCH 09/16] use x86 for controlcatalog --- samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj index 8c96442642..e215105149 100644 --- a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj +++ b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj @@ -26,7 +26,7 @@ 4 - AnyCPU + x86 pdbonly true bin\Release\ From 6663175fd37b35fb22e41dc7123e079add147a2a Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 11 May 2017 18:07:10 +0300 Subject: [PATCH 10/16] Bump Avalonia.Skia.Linux.Natives dependency --- build/SkiaSharp.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props index 77d7dda54a..ceabab0b41 100644 --- a/build/SkiaSharp.props +++ b/build/SkiaSharp.props @@ -1,6 +1,6 @@  - + From be0ac7e9cad0e99af1290880f566f5840cb8221c Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 11 May 2017 19:12:24 +0300 Subject: [PATCH 11/16] Fixed native binary include condition --- build/SkiaSharp.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props index ceabab0b41..77407f9996 100644 --- a/build/SkiaSharp.props +++ b/build/SkiaSharp.props @@ -1,6 +1,6 @@  - + From eb2b10900ca4e8a54bbf49e57238876875fd7e8b Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 11 May 2017 19:14:58 +0300 Subject: [PATCH 12/16] Include config files in zip archive --- build.cake | 1 + 1 file changed, 1 insertion(+) diff --git a/build.cake b/build.cake index c158847418..2f6bf5b0c1 100644 --- a/build.cake +++ b/build.cake @@ -279,6 +279,7 @@ Task("Zip-Files") Zip(parameters.ZipSourceControlCatalogDesktopDirs, parameters.ZipTargetControlCatalogDesktopDirs, GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dll") + + GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.config") + GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.so") + GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dylib") + GetFiles(parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.exe")); From 6f70acc7b0148f60c604235f326ac3f348f0bbd3 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 13 May 2017 11:28:43 +0200 Subject: [PATCH 13/16] Updated version to 0.5.0. --- src/Shared/SharedAssemblyInfo.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Shared/SharedAssemblyInfo.cs b/src/Shared/SharedAssemblyInfo.cs index 63111eebf4..2ae067092c 100644 --- a/src/Shared/SharedAssemblyInfo.cs +++ b/src/Shared/SharedAssemblyInfo.cs @@ -13,6 +13,6 @@ using System.Resources; [assembly: AssemblyTrademark("")] [assembly: NeutralResourcesLanguage("en")] -[assembly: AssemblyVersion("0.4.1")] -[assembly: AssemblyFileVersion("0.4.1")] -[assembly: AssemblyInformationalVersion("0.4.1")] +[assembly: AssemblyVersion("0.5.0")] +[assembly: AssemblyFileVersion("0.5.0")] +[assembly: AssemblyInformationalVersion("0.5.0")] From 01196a5c868c24f98abd597365160305c5d1fb2e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 13 May 2017 21:19:07 +0200 Subject: [PATCH 14/16] Updated links to extension. --- docs/index.md | 2 +- docs/tutorial/gettingstarted.md | 2 +- readme.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/index.md b/docs/index.md index 99424e3f75..37d95b203d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,7 +10,7 @@ What does alpha mean? Well, it means that it's now at a stage where you can have ## How do I try it out -The easiest way to try out Avalonia is to install the [Visual Studio Extension](https://visualstudiogallery.msdn.microsoft.com/a4542e8a-b56c-4295-8df1-7e220178b873). +The easiest way to try out Avalonia is to install the [Visual Studio Extension](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaforVisualStudio). This will add a Avalonia project template and a Window template to the standard Visual Studo "Add" dialog (yes, icons still to come :) ): diff --git a/docs/tutorial/gettingstarted.md b/docs/tutorial/gettingstarted.md index 0972d26c48..5b7fe436a7 100644 --- a/docs/tutorial/gettingstarted.md +++ b/docs/tutorial/gettingstarted.md @@ -4,7 +4,7 @@ ![](images/add-dialogs.png) -The easiest way to try out Avalonia is to install the [Visual Studio Extension](https://visualstudiogallery.msdn.microsoft.com/e1c6ae1f-6fd9-467d-8f62-1e28b4225213). +The easiest way to try out Avalonia is to install the [Visual Studio Extension](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaforVisualStudio). This will add a Avalonia project template and a Window template to the standard Visual Studo “Add” dialog (yes, icons still to come :) ): diff --git a/readme.md b/readme.md index 2149aff386..621037e89e 100644 --- a/readme.md +++ b/readme.md @@ -42,7 +42,7 @@ using Direct2D and other operating systems using Gtk & Cairo. Avalonia is now in alpha. What does "alpha" mean? Well, it means that it's now at a stage where you can have a play and hopefully create simple applications. There's now a [Visual -Studio Extension](https://visualstudiogallery.msdn.microsoft.com/e1c6ae1f-6fd9-467d-8f62-1e28b4225213) +Studio Extension](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaforVisualStudio) containing project and item templates that will help you get started, and there's an initial complement of controls. There's still a lot missing, and you *will* find bugs, and the API *will* change, but this represents the first time From 49aeb7cec2de6145d4c0f8c842ac7211c454d444 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Fri, 19 May 2017 13:49:11 +0300 Subject: [PATCH 15/16] Fixed binding to Task --- src/Markup/Avalonia.Markup/Data/Plugins/TaskStreamPlugin.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Markup/Avalonia.Markup/Data/Plugins/TaskStreamPlugin.cs b/src/Markup/Avalonia.Markup/Data/Plugins/TaskStreamPlugin.cs index d2c8c1b064..02fe8104b8 100644 --- a/src/Markup/Avalonia.Markup/Data/Plugins/TaskStreamPlugin.cs +++ b/src/Markup/Avalonia.Markup/Data/Plugins/TaskStreamPlugin.cs @@ -36,7 +36,7 @@ namespace Avalonia.Markup.Data.Plugins if (task != null) { - var resultProperty = task.GetType().GetTypeInfo().GetDeclaredProperty("Result"); + var resultProperty = task.GetType().GetRuntimeProperty("Result"); if (resultProperty != null) { @@ -61,7 +61,7 @@ namespace Avalonia.Markup.Data.Plugins protected IObservable HandleCompleted(Task task) { - var resultProperty = task.GetType().GetTypeInfo().GetDeclaredProperty("Result"); + var resultProperty = task.GetType().GetRuntimeProperty("Result"); if (resultProperty != null) { From 760caf86ce9145772e60dfe94eea02e270215664 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Fri, 19 May 2017 14:01:34 +0300 Subject: [PATCH 16/16] Bump version --- src/Shared/SharedAssemblyInfo.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Shared/SharedAssemblyInfo.cs b/src/Shared/SharedAssemblyInfo.cs index 2ae067092c..81c31e2687 100644 --- a/src/Shared/SharedAssemblyInfo.cs +++ b/src/Shared/SharedAssemblyInfo.cs @@ -13,6 +13,6 @@ using System.Resources; [assembly: AssemblyTrademark("")] [assembly: NeutralResourcesLanguage("en")] -[assembly: AssemblyVersion("0.5.0")] -[assembly: AssemblyFileVersion("0.5.0")] -[assembly: AssemblyInformationalVersion("0.5.0")] +[assembly: AssemblyVersion("0.5.1")] +[assembly: AssemblyFileVersion("0.5.1")] +[assembly: AssemblyInformationalVersion("0.5.1")]