1
0
Эх сурвалжийг харах

Merge branch 'master' into fixes/static-resource-brush-converter

Jumar Macato 4 жил өмнө
parent
commit
84dc198e4a
44 өөрчлөгдсөн 117 нэмэгдсэн , 75 устгасан
  1. 10 7
      azure-pipelines.yml
  2. 2 2
      build/HarfBuzzSharp.props
  3. 1 1
      build/MicroCom.targets
  4. 2 2
      build/SkiaSharp.props
  5. 3 3
      global.json
  6. 11 4
      native/Avalonia.Native/src/OSX/window.mm
  7. 5 4
      nukebuild/_build.csproj
  8. 1 1
      samples/BindingDemo/BindingDemo.csproj
  9. 1 1
      samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj
  10. 1 1
      samples/PlatformSanityChecks/PlatformSanityChecks.csproj
  11. 1 1
      samples/Previewer/Previewer.csproj
  12. 1 1
      samples/RemoteDemo/RemoteDemo.csproj
  13. 1 1
      samples/RenderDemo/RenderDemo.csproj
  14. 1 1
      samples/Sandbox/Sandbox.csproj
  15. 1 1
      samples/VirtualizationDemo/VirtualizationDemo.csproj
  16. 1 1
      src/Avalonia.Controls/MenuItem.cs
  17. 2 2
      src/Avalonia.Controls/Platform/PlatformManager.cs
  18. 3 4
      src/Avalonia.Input/Gestures.cs
  19. 1 1
      src/Avalonia.Input/InputElement.cs
  20. 20 5
      src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs
  21. 1 1
      src/Skia/Avalonia.Skia/Gpu/OpenGl/GlSkiaGpu.cs
  22. 4 4
      src/tools/MicroComGenerator/MicroComGenerator.csproj
  23. 1 1
      tests/Avalonia.Animation.UnitTests/Avalonia.Animation.UnitTests.csproj
  24. 1 1
      tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj
  25. 1 1
      tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
  26. 1 1
      tests/Avalonia.Controls.DataGrid.UnitTests/Avalonia.Controls.DataGrid.UnitTests.csproj
  27. 1 1
      tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
  28. 1 1
      tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
  29. 2 2
      tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj
  30. 4 4
      tests/Avalonia.DesignerSupport.Tests/DesignerSupportTests.cs
  31. 1 1
      tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
  32. 1 1
      tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj
  33. 1 1
      tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj
  34. 1 1
      tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj
  35. 1 1
      tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj
  36. 1 1
      tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
  37. 1 2
      tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
  38. 1 1
      tests/Avalonia.ReactiveUI.UnitTests/Avalonia.ReactiveUI.UnitTests.csproj
  39. 1 1
      tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
  40. 1 1
      tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj
  41. 1 1
      tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj
  42. 1 1
      tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj
  43. 18 0
      tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests.cs
  44. 1 1
      tests/Avalonia.Visuals.UnitTests/VisualTree/TransformedBoundsTests.cs

+ 10 - 7
azure-pipelines.yml

@@ -1,3 +1,6 @@
+variables:
+    MSBuildEnableWorkloadResolver: 'false'
+
 jobs:
 - job: Linux
   pool:
@@ -9,9 +12,9 @@ jobs:
       version: 3.1.414
 
   - task: UseDotNet@2
-    displayName: 'Use .NET Core SDK 5.0.402'
+    displayName: 'Use .NET Core SDK 6.0.100'
     inputs:
-      version: 5.0.402
+      version: 6.0.100
 
   - task: CmdLine@2
     displayName: 'Run Build'
@@ -40,9 +43,9 @@ jobs:
       version: 3.1.414
 
   - task: UseDotNet@2
-    displayName: 'Use .NET Core SDK 5.0.402'
+    displayName: 'Use .NET Core SDK 6.0.100'
     inputs:
-      version: 5.0.402
+      version: 6.0.100
       
   - task: CmdLine@2
     displayName: 'Install Mono 5.18'
@@ -56,7 +59,7 @@ jobs:
     inputs:
       script: |
         export PATH="`pwd`/sdk:$PATH"
-        cd src/tools/MicroComGenerator; dotnet run -i ../../Avalonia.Native/avn.idl --cpp ../../../native/Avalonia.Native/inc/avalonia-native.h
+        cd src/tools/MicroComGenerator; dotnet run -f net6.0 -i ../../Avalonia.Native/avn.idl --cpp ../../../native/Avalonia.Native/inc/avalonia-native.h
 
   - task: Xcode@5
     inputs:
@@ -110,9 +113,9 @@ jobs:
       version: 3.1.414
 
   - task: UseDotNet@2
-    displayName: 'Use .NET Core SDK 5.0.402'
+    displayName: 'Use .NET Core SDK 6.0.100'
     inputs:
-      version: 5.0.402
+      version: 6.0.100
 
   - task: CmdLine@2
     displayName: 'Install Nuke'

+ 2 - 2
build/HarfBuzzSharp.props

@@ -1,6 +1,6 @@
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
-    <PackageReference Include="HarfBuzzSharp" Version="2.6.1.7" />
-    <PackageReference Condition="'$(IncludeLinuxSkia)' == 'true'" Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.6.1.7" />
+    <PackageReference Include="HarfBuzzSharp" Version="2.8.2-preview.155" />
+    <PackageReference Condition="'$(IncludeLinuxSkia)' == 'true'" Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2-preview.155" />
   </ItemGroup>
 </Project>

+ 1 - 1
build/MicroCom.targets

@@ -15,7 +15,7 @@
           Inputs="@(AvnComIdl);$(MSBuildThisFileDirectory)../src/tools/MicroComGenerator/**/*.cs"
           Outputs="%(AvnComIdl.OutputFile)">
     <Message Importance="high" Text="Generating file %(AvnComIdl.OutputFile) from @(AvnComIdl)" />
-    <Exec Command="dotnet &quot;$(MSBuildThisFileDirectory)../src/tools/MicroComGenerator/bin/$(Configuration)/netcoreapp3.1/MicroComGenerator.dll&quot; -i @(AvnComIdl) --cs %(AvnComIdl.OutputFile)" 
+    <Exec Command="dotnet &quot;$(MSBuildThisFileDirectory)../src/tools/MicroComGenerator/bin/$(Configuration)/net6.0/MicroComGenerator.dll&quot; -i @(AvnComIdl) --cs %(AvnComIdl.OutputFile)" 
           LogStandardErrorAsError="true" />
     <ItemGroup>
       <!-- Remove and re-add generated file, this is needed for the clean build -->

+ 2 - 2
build/SkiaSharp.props

@@ -1,6 +1,6 @@
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
-    <PackageReference Include="SkiaSharp" Version="2.80.2" />
-    <PackageReference Condition="'$(IncludeLinuxSkia)' == 'true'" Include="SkiaSharp.NativeAssets.Linux" Version="2.80.2" />
+    <PackageReference Include="SkiaSharp" Version="2.88.0-preview.155" />
+    <PackageReference Condition="'$(IncludeLinuxSkia)' == 'true'" Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0-preview.155" />
   </ItemGroup>
 </Project>

+ 3 - 3
global.json

@@ -1,7 +1,7 @@
 {
-	"sdk": {
-		"version": "5.0.402"
-	},
+    "sdk": {
+        "version": "6.0.100"
+    },
     "msbuild-sdks": {
         "Microsoft.Build.Traversal": "1.0.43",
         "MSBuild.Sdk.Extras": "2.0.54",

+ 11 - 4
native/Avalonia.Native/src/OSX/window.mm

@@ -2398,11 +2398,18 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent
         {
             case NSEventTypeLeftMouseDown:
             {
-                auto avnPoint = [AvnView toAvnPoint:[event locationInWindow]];
-                auto point = [self translateLocalPoint:avnPoint];
-                AvnVector delta;
+                AvnView* view = _parent->View;
+                NSPoint windowPoint = [event locationInWindow];
+                NSPoint viewPoint = [view convertPoint:windowPoint fromView:nil];
                 
-                _parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, [event timestamp] * 1000, AvnInputModifiersNone, point, delta);
+                if (!NSPointInRect(viewPoint, view.bounds))
+                {
+                    auto avnPoint = [AvnView toAvnPoint:windowPoint];
+                    auto point = [self translateLocalPoint:avnPoint];
+                    AvnVector delta;
+                   
+                    _parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, [event timestamp] * 1000, AvnInputModifiersNone, point, delta);
+                }
             }
             break;
                 

+ 5 - 4
nukebuild/_build.csproj

@@ -15,6 +15,7 @@
     <PackageReference Include="JetBrains.dotMemoryUnit" Version="3.0.20171219.105559" />
     <PackageReference Include="vswhere" Version="2.6.7" Condition=" '$(OS)' == 'Windows_NT' " />
     <PackageReference Include="ILRepack.NETStandard" Version="2.0.4" />
+    <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.7.0" />
     <!-- Keep in sync with Avalonia.Build.Tasks -->
     <PackageReference Include="Mono.Cecil" Version="0.11.2" />
   </ItemGroup>
@@ -36,10 +37,10 @@
     <None Include="..\GitVersion.yml" Condition="Exists('..\GitVersion.yml')" />
     <Compile Remove="Numerge/**/*.*" />
     <Compile Include="Numerge/Numerge/**/*.cs" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\src\tools\MicroComGenerator\MicroComGenerator.csproj" />
+    <Compile Include="..\src\tools\MicroComGenerator\**\*.cs" Exclude="..\src\tools\MicroComGenerator\obj\**">
+      <Link>MicroComGenerator\%(Filename)%(Extension)</Link>
+    </Compile>
+    <Compile Remove="..\src\tools\MicroComGenerator\Program.cs" />
   </ItemGroup>
 
 </Project>

+ 1 - 1
samples/BindingDemo/BindingDemo.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />

+ 1 - 1
samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>WinExe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
     <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
   </PropertyGroup>
 

+ 1 - 1
samples/PlatformSanityChecks/PlatformSanityChecks.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
 
   <ItemGroup>

+ 1 - 1
samples/Previewer/Previewer.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <Compile Update="**\*.xaml.cs">

+ 1 - 1
samples/RemoteDemo/RemoteDemo.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />

+ 1 - 1
samples/RenderDemo/RenderDemo.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="..\..\src\Avalonia.Visuals\Rendering\SceneGraph\LineBoundsHelper.cs" Link="LineBoundsHelper.cs" />

+ 1 - 1
samples/Sandbox/Sandbox.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>WinExe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
     <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
   </PropertyGroup>
 

+ 1 - 1
samples/VirtualizationDemo/VirtualizationDemo.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />

+ 1 - 1
src/Avalonia.Controls/MenuItem.cs

@@ -387,7 +387,7 @@ namespace Avalonia.Controls
                 parent = parent.Parent;
             }
 
-            _isEmbeddedInMenu = parent is IMenu;
+            _isEmbeddedInMenu = parent.FindLogicalAncestorOfType<IMenu>(true) != null;
         }
 
         protected override void OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs e)

+ 2 - 2
src/Avalonia.Controls/Platform/PlatformManager.cs

@@ -29,7 +29,7 @@ namespace Avalonia.Controls.Platform
 
             if (platform == null)
             {
-                throw new Exception("Could not CreateWindow(): IWindowingPlatform is not registered.");
+                throw new Exception("Could not CreateTrayIcon(): IWindowingPlatform is not registered.");
             }
 
             return s_designerMode ? null : platform.CreateTrayIcon();
@@ -45,7 +45,7 @@ namespace Avalonia.Controls.Platform
                 throw new Exception("Could not CreateWindow(): IWindowingPlatform is not registered.");
             }
 
-            return s_designerMode ? (IWindowImpl)platform.CreateEmbeddableWindow() : platform.CreateWindow();
+            return s_designerMode ? platform.CreateEmbeddableWindow() : platform.CreateWindow();
         }
 
         public static IWindowImpl CreateEmbeddableWindow()

+ 3 - 4
src/Avalonia.Input/Gestures.cs

@@ -30,7 +30,7 @@ namespace Avalonia.Input
                 "ScrollGestureEnded", RoutingStrategies.Bubble, typeof(Gestures));
 
 #pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
-        private static WeakReference<IInteractive> s_lastPress = new WeakReference<IInteractive>(null);
+        private static readonly WeakReference<IInteractive> s_lastPress = new WeakReference<IInteractive>(null);
 #pragma warning restore CS8625 // Cannot convert null literal to non-nullable reference type.
 
         static Gestures()
@@ -86,16 +86,15 @@ namespace Avalonia.Input
 #pragma warning restore CS0618 // Type or member is obsolete
                 if (clickCount <= 1)
                 {
-                    s_lastPress = new WeakReference<IInteractive>(ev.Source);
+                    s_lastPress.SetTarget(ev.Source);
                 }
-                else if (s_lastPress != null && clickCount == 2 && e.GetCurrentPoint(visual).Properties.IsLeftButtonPressed)
+                else if (clickCount == 2 && e.GetCurrentPoint(visual).Properties.IsLeftButtonPressed)
                 {
                     if (s_lastPress.TryGetTarget(out var target) && target == e.Source)
                     {
                         e.Source.RaiseEvent(new TappedEventArgs(DoubleTappedEvent, e));
                     }
                 }
-
             }
         }
 

+ 1 - 1
src/Avalonia.Input/InputElement.cs

@@ -632,7 +632,7 @@ namespace Avalonia.Input
             }
             else if (change.Property == IsKeyboardFocusWithinProperty)
             {
-                PseudoClasses.Set(":focus-within", _isKeyboardFocusWithin);
+                PseudoClasses.Set(":focus-within", change.NewValue.GetValueOrDefault<bool>());
             }
         }
 

+ 20 - 5
src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs

@@ -20,6 +20,7 @@ namespace Avalonia.Rendering
     {
         private readonly IVisual _root;
         private readonly IRenderRoot _renderRoot;
+        private bool _updateTransformedBounds = true;
         private IRenderTarget _renderTarget;
 
         /// <summary>
@@ -34,6 +35,13 @@ namespace Avalonia.Rendering
             _renderRoot = root as IRenderRoot;
         }
 
+        private ImmediateRenderer(IVisual root, bool updateTransformedBounds)
+        {
+            _root = root ?? throw new ArgumentNullException(nameof(root));
+            _renderRoot = root as IRenderRoot;
+            _updateTransformedBounds = updateTransformedBounds;
+        }
+
         /// <inheritdoc/>
         public bool DrawFps { get; set; }
 
@@ -98,7 +106,7 @@ namespace Avalonia.Rendering
         /// <param name="target">The render target.</param>
         public static void Render(IVisual visual, IRenderTarget target)
         {
-            using (var renderer = new ImmediateRenderer(visual))
+            using (var renderer = new ImmediateRenderer(visual, updateTransformedBounds: false))
             using (var context = new DrawingContext(target.CreateDrawingContext(renderer)))
             {
                 renderer.Render(context, visual, visual.Bounds);
@@ -112,7 +120,7 @@ namespace Avalonia.Rendering
         /// <param name="context">The drawing context.</param>
         public static void Render(IVisual visual, DrawingContext context)
         {
-            using (var renderer = new ImmediateRenderer(visual))
+            using (var renderer = new ImmediateRenderer(visual, updateTransformedBounds: false))
             {
                 renderer.Render(context, visual, visual.Bounds);
             }
@@ -193,6 +201,12 @@ namespace Avalonia.Rendering
             Render(new DrawingContext(context), visual, visual.Bounds);
         }
 
+        internal static void Render(IVisual visual, DrawingContext context, bool updateTransformedBounds)
+        {
+            using var renderer = new ImmediateRenderer(visual, updateTransformedBounds);
+            renderer.Render(context, visual, visual.Bounds);
+        }
+
         private static void ClearTransformedBounds(IVisual visual)
         {
             foreach (var e in visual.GetSelfAndVisualDescendants())
@@ -308,7 +322,8 @@ namespace Avalonia.Rendering
                         new TransformedBounds(bounds, new Rect(), context.CurrentContainerTransform);
 #pragma warning restore 0618
 
-                    visual.TransformedBounds = transformed;
+                    if (_updateTransformedBounds)
+                        visual.TransformedBounds = transformed;
 
                     foreach (var child in visual.VisualChildren.OrderBy(x => x, ZIndexComparer.Instance))
                     {
@@ -321,7 +336,7 @@ namespace Avalonia.Rendering
                                 : clipRect;
                             Render(context, child, childClipRect);
                         }
-                        else
+                        else if (_updateTransformedBounds)
                         {
                             ClearTransformedBounds(child);
                         }
@@ -329,7 +344,7 @@ namespace Avalonia.Rendering
                 }
             }
 
-            if (!visual.IsVisible)
+            if (!visual.IsVisible && _updateTransformedBounds)
             {
                 ClearTransformedBounds(visual);
             }

+ 1 - 1
src/Skia/Avalonia.Skia/Gpu/OpenGl/GlSkiaGpu.cs

@@ -25,7 +25,7 @@ namespace Avalonia.Skia
                     GRGlInterface.CreateOpenGl(proc => context.GlInterface.GetProcAddress(proc)) :
                     GRGlInterface.CreateGles(proc => context.GlInterface.GetProcAddress(proc)))
                 {
-                    _grContext = GRContext.CreateGl(iface);
+                    _grContext = GRContext.CreateGl(iface, new GRContextOptions { AvoidStencilBuffers = true });
                     if (maxResourceBytes.HasValue)
                     {
                         _grContext.SetResourceCacheLimit(maxResourceBytes.Value);

+ 4 - 4
src/tools/MicroComGenerator/MicroComGenerator.csproj

@@ -1,8 +1,8 @@
 <Project Sdk="Microsoft.NET.Sdk">
-    <PropertyGroup>
-        <OutputType>Exe</OutputType>
-        <TargetFramework>netcoreapp3.1</TargetFramework>
-    </PropertyGroup>
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>net6.0</TargetFramework>
+  </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="CommandLineParser" Version="2.8.0" />
     <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.7.0" />

+ 1 - 1
tests/Avalonia.Animation.UnitTests/Avalonia.Animation.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>
   </PropertyGroup>

+ 1 - 1
tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>
     <LangVersion>latest</LangVersion>

+ 1 - 1
tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Exe</OutputType>
     <IsPackable>false</IsPackable>
   </PropertyGroup>

+ 1 - 1
tests/Avalonia.Controls.DataGrid.UnitTests/Avalonia.Controls.DataGrid.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <LangVersion>latest</LangVersion>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>

+ 1 - 1
tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <LangVersion>latest</LangVersion>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>

+ 1 - 1
tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
     <IsPackable>false</IsPackable>
   </PropertyGroup>
   <ItemGroup>

+ 2 - 2
tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
   </PropertyGroup>
   <Import Project="..\..\build\UnitTests.NetCore.targets" />
@@ -18,4 +18,4 @@
   <ItemGroup>
     <Folder Include="Properties\" />
   </ItemGroup>
-</Project>
+</Project>

+ 4 - 4
tests/Avalonia.DesignerSupport.Tests/DesignerSupportTests.cs

@@ -29,25 +29,25 @@ namespace Avalonia.DesignerSupport.Tests
 
         [SkippableTheory,
          InlineData(
-            @"..\..\..\..\..\tests/Avalonia.DesignerSupport.TestApp/bin/$BUILD/netcoreapp3.1/",
+            @"..\..\..\..\..\tests/Avalonia.DesignerSupport.TestApp/bin/$BUILD/net6.0/",
             "Avalonia.DesignerSupport.TestApp",
             "Avalonia.DesignerSupport.TestApp.dll",
             @"..\..\..\..\..\tests\Avalonia.DesignerSupport.TestApp\MainWindow.xaml",
             "win32"),
          InlineData(
-            @"..\..\..\..\..\samples\ControlCatalog.NetCore\bin\$BUILD\netcoreapp3.1\",
+            @"..\..\..\..\..\samples\ControlCatalog.NetCore\bin\$BUILD\net6.0\",
             "ControlCatalog.NetCore",
             "ControlCatalog.dll",
             @"..\..\..\..\..\samples\ControlCatalog\MainWindow.xaml",
             "win32"),
         InlineData(
-            @"..\..\..\..\..\tests/Avalonia.DesignerSupport.TestApp/bin/$BUILD/netcoreapp3.1/",
+            @"..\..\..\..\..\tests/Avalonia.DesignerSupport.TestApp/bin/$BUILD/net6.0/",
             "Avalonia.DesignerSupport.TestApp",
             "Avalonia.DesignerSupport.TestApp.dll",
             @"..\..\..\..\..\tests\Avalonia.DesignerSupport.TestApp\MainWindow.xaml",
             "avalonia-remote"),
         InlineData(
-            @"..\..\..\..\..\samples\ControlCatalog.NetCore\bin\$BUILD\netcoreapp3.1\",
+            @"..\..\..\..\..\samples\ControlCatalog.NetCore\bin\$BUILD\net6.0\",
             "ControlCatalog.NetCore",
             "ControlCatalog.dll",
             @"..\..\..\..\..\samples\ControlCatalog\MainWindow.xaml",

+ 1 - 1
tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <Compile Include="..\Avalonia.RenderTests\**\*.cs" />

+ 1 - 1
tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
   </PropertyGroup>
   <Import Project="..\..\build\UnitTests.NetCore.targets" />
   <Import Project="..\..\build\Moq.props" />

+ 1 - 1
tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>
   </PropertyGroup>

+ 1 - 1
tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>
     <LangVersion>latest</LangVersion>

+ 1 - 1
tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
   </PropertyGroup>
   <Import Project="..\..\build\UnitTests.NetCore.targets" />

+ 1 - 1
tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>
   </PropertyGroup>

+ 1 - 2
tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFrameworks>net6.0;net47</TargetFrameworks>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>
     <LangVersion>latest</LangVersion>
@@ -25,7 +25,6 @@
     <ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
-    <ProjectReference Include="..\Avalonia.Base.UnitTests\Avalonia.Base.UnitTests.csproj" />
     <ProjectReference Include="..\Avalonia.UnitTests\Avalonia.UnitTests.csproj" />
   </ItemGroup>
   <ItemGroup>

+ 1 - 1
tests/Avalonia.ReactiveUI.UnitTests/Avalonia.ReactiveUI.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
     <SignAssembly>false</SignAssembly>
   </PropertyGroup>
   <Import Project="..\..\build\UnitTests.NetCore.targets" />

+ 1 - 1
tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <DefineConstants>AVALONIA_SKIA;AVALONIA_SKIA_SKIP_FAIL</DefineConstants>
   </PropertyGroup>
   <ItemGroup>

+ 1 - 1
tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <LangVersion>latest</LangVersion>
   </PropertyGroup>
   <Import Project="..\..\build\UnitTests.NetCore.targets" />

+ 1 - 1
tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
     <NoWarn>CS0067</NoWarn>
     <IsTestProject>true</IsTestProject>

+ 1 - 1
tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj

@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
   <PropertyGroup>
-    <TargetFrameworks>netcoreapp3.1;net47</TargetFrameworks>
+    <TargetFramework>net6.0</TargetFramework>
     <OutputType>Library</OutputType>
     <IsTestProject>true</IsTestProject>
   </PropertyGroup>

+ 18 - 0
tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests.cs

@@ -291,6 +291,24 @@ namespace Avalonia.Visuals.UnitTests.Rendering
             }
         }
 
+        [Fact]
+        public void Static_Render_Method_Does_Not_Update_TransformedBounds()
+        {
+            using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
+            {
+                var target = new Border();
+                var expected = new TransformedBounds(new Rect(1, 2, 3, 4), new Rect(4, 5, 6, 7), Matrix.CreateRotation(0.8));
+
+                ((IVisual)target).TransformedBounds = expected;
+
+                var renderTarget = Mock.Of<IRenderTarget>(x => 
+                    x.CreateDrawingContext(It.IsAny<IVisualBrushRenderer>()) == Mock.Of<IDrawingContextImpl>());
+                ImmediateRenderer.Render(target, renderTarget);
+
+                Assert.Equal(expected, target.TransformedBounds);
+            }
+        }
+
         private class TestControl : Control
         {
             public bool Rendered { get; private set; }

+ 1 - 1
tests/Avalonia.Visuals.UnitTests/VisualTree/TransformedBoundsTests.cs

@@ -40,7 +40,7 @@ namespace Avalonia.Visuals.UnitTests.VisualTree
 
                 tree.Measure(Size.Infinity);
                 tree.Arrange(new Rect(0, 0, 100, 100));
-                ImmediateRenderer.Render(tree, context);
+                ImmediateRenderer.Render(tree, context, true);
 
                 var track = control.GetObservable(Visual.TransformedBoundsProperty);
                 var results = new List<TransformedBounds?>();