diff --git a/Avalonia.sln b/Avalonia.sln
index 5043f474c2..64ed214e1f 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -5,48 +5,26 @@ VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Visuals", "src\Avalonia.Visuals\Avalonia.Visuals.csproj", "{EB582467-6ABB-43A1-B052-E981BA910E3A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Layout", "src\Avalonia.Layout\Avalonia.Layout.csproj", "{42472427-4774-4C81-8AFF-9F27B8E31721}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Windows", "Windows", "{B39A8919-9F95-48FE-AD7B-76E08B509888}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Win32", "src\Windows\Avalonia.Win32\Avalonia.Win32.csproj", "{811A76CF-1CF6-440F-963B-BBE31BD72A82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1", "src\Windows\Avalonia.Direct2D1\Avalonia.Direct2D1.csproj", "{3E908F67-5543-4879-A1DC-08EACE79B3CD}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input", "src\Avalonia.Input\Avalonia.Input.csproj", "{62024B2D-53EB-4638-B26B-85EEAA54866E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Interactivity", "src\Avalonia.Interactivity\Avalonia.Interactivity.csproj", "{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls", "src\Avalonia.Controls\Avalonia.Controls.csproj", "{D2221C82-4A25-4583-9B43-D791E3F6820C}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Styling", "src\Avalonia.Styling\Avalonia.Styling.csproj", "{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Themes.Default", "src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj", "{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Diagnostics", "src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj", "{7062AE20-5DCC-4442-9645-8195BDECE63E}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Animation", "src\Avalonia.Animation\Avalonia.Animation.csproj", "{D211E587-D8BC-45B9-95A4-F297C8FA5200}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Styling.UnitTests", "tests\Avalonia.Styling.UnitTests\Avalonia.Styling.UnitTests.csproj", "{47ECDF59-DEF8-4C53-87B1-2098A3429059}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.UnitTests", "tests\Avalonia.Controls.UnitTests\Avalonia.Controls.UnitTests.csproj", "{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Visuals.UnitTests", "tests\Avalonia.Visuals.UnitTests\Avalonia.Visuals.UnitTests.csproj", "{76716382-3159-460E-BDA6-C5715CF606D7}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base.UnitTests", "tests\Avalonia.Base.UnitTests\Avalonia.Base.UnitTests.csproj", "{2905FF23-53FB-45E6-AA49-6AF47A172056}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Layout.UnitTests", "tests\Avalonia.Layout.UnitTests\Avalonia.Layout.UnitTests.csproj", "{DB070A10-BF39-4752-8456-86E9D5928478}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Interactivity.UnitTests", "tests\Avalonia.Interactivity.UnitTests\Avalonia.Interactivity.UnitTests.csproj", "{08478EF5-44E8-42E9-92D6-15E00EC038D8}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1.RenderTests", "tests\Avalonia.Direct2D1.RenderTests\Avalonia.Direct2D1.RenderTests.csproj", "{DABFD304-D6A4-4752-8123-C2CCF7AC7831}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input.UnitTests", "tests\Avalonia.Input.UnitTests\Avalonia.Input.UnitTests.csproj", "{AC18926A-E784-40FE-B09D-BB0FE2B599F0}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1.UnitTests", "tests\Avalonia.Direct2D1.UnitTests\Avalonia.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup.Xaml.UnitTests", "tests\Avalonia.Markup.Xaml.UnitTests\Avalonia.Markup.Xaml.UnitTests.csproj", "{99135EAB-653D-47E4-A378-C96E1278CA44}"
@@ -77,8 +55,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Android", "Android", "{7CF9
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Android", "src\Android\Avalonia.Android\Avalonia.Android.csproj", "{7B92AF71-6287-4693-9DCB-BD5B6E927E23}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.AndroidTestApplication", "src\Android\Avalonia.AndroidTestApplication\Avalonia.AndroidTestApplication.csproj", "{FF69B927-C545-49AE-8E16-3D14D621AA12}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "iOS", "iOS", "{0CB0B92E-6CFF-4240-80A5-CCAFE75D91E1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.iOS", "src\iOS\Avalonia.iOS\Avalonia.iOS.csproj", "{4488AD85-1495-4809-9AA4-DDFE0A48527E}"
@@ -185,8 +161,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Build.Tasks", "src
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "_build", "nukebuild\_build.csproj", "{3F00BC43-5095-477F-93D8-E65B08179A00}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Animation.UnitTests", "tests\Avalonia.Animation.UnitTests\Avalonia.Animation.UnitTests.csproj", "{AF227847-E65C-4BE9-BCE9-B551357788E0}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.X11", "src\Avalonia.X11\Avalonia.X11.csproj", "{41B02319-965D-4945-8005-C1A3D1224165}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PlatformSanityChecks", "samples\PlatformSanityChecks\PlatformSanityChecks.csproj", "{D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}"
@@ -233,7 +207,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlSamples", "samples\S
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.PlatformSupport", "src\Avalonia.PlatformSupport\Avalonia.PlatformSupport.csproj", "{E8A597F0-2AB5-4BDA-A235-41162DAF53CF}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.iOS", "samples\ControlCatalog.iOS\ControlCatalog.iOS.csproj", "{70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.iOS", "samples\ControlCatalog.iOS\ControlCatalog.iOS.csproj", "{70B9F5CC-E2F9-4314-9514-EDE762ACCC4B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.PlatformSupport.UnitTests", "tests\Avalonia.PlatformSupport.UnitTests\Avalonia.PlatformSupport.UnitTests.csproj", "{CE910927-CE5A-456F-BC92-E4C757354A5C}"
EndProject
@@ -279,54 +253,6 @@ Global
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhone.Build.0 = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhone.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhone.Build.0 = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Any CPU.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhone.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhone.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhone.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhone.Build.0 = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Any CPU.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhone.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhone.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -375,54 +301,6 @@ Global
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhone.Build.0 = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhone.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhone.Build.0 = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Any CPU.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhone.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhone.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhone.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhone.Build.0 = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Any CPU.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhone.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhone.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -447,30 +325,6 @@ Global
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhone.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhone.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhone.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -519,54 +373,6 @@ Global
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhone.Build.0 = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhone.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhone.Build.0 = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|Any CPU.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhone.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhone.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhone.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhone.Build.0 = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|Any CPU.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhone.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhone.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -591,30 +397,6 @@ Global
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhone.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhone.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhone.Build.0 = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|Any CPU.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhone.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhone.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -639,54 +421,6 @@ Global
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhone.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhone.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhone.Build.0 = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|Any CPU.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhone.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhone.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhone.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhone.Build.0 = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|Any CPU.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhone.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhone.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -711,30 +445,6 @@ Global
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhone.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhone.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhone.Build.0 = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|Any CPU.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhone.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhone.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -917,22 +627,6 @@ Global
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|Any CPU.Build.0 = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|iPhone.ActiveCfg = Release|Any CPU
{7B92AF71-6287-4693-9DCB-BD5B6E927E23}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|Any CPU.Build.0 = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|Any CPU.Deploy.0 = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|iPhone.ActiveCfg = Release|Any CPU
- {FF69B927-C545-49AE-8E16-3D14D621AA12}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{4488AD85-1495-4809-9AA4-DDFE0A48527E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -1641,30 +1335,6 @@ Global
{3F00BC43-5095-477F-93D8-E65B08179A00}.Release|iPhone.Build.0 = Release|Any CPU
{3F00BC43-5095-477F-93D8-E65B08179A00}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3F00BC43-5095-477F-93D8-E65B08179A00}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|iPhone.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|iPhone.ActiveCfg = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|iPhone.Build.0 = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
@@ -2272,14 +1942,9 @@ Global
GlobalSection(NestedProjects) = preSolution
{811A76CF-1CF6-440F-963B-BBE31BD72A82} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
{3E908F67-5543-4879-A1DC-08EACE79B3CD} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
- {47ECDF59-DEF8-4C53-87B1-2098A3429059} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {76716382-3159-460E-BDA6-C5715CF606D7} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{2905FF23-53FB-45E6-AA49-6AF47A172056} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {DB070A10-BF39-4752-8456-86E9D5928478} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {08478EF5-44E8-42E9-92D6-15E00EC038D8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{DABFD304-D6A4-4752-8123-C2CCF7AC7831} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{99135EAB-653D-47E4-A378-C96E1278CA44} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{3E53A01A-B331-47F3-B828-4A5717E77A24} = {8B6A8209-894F-4BA1-B880-965FD453982C}
@@ -2287,7 +1952,6 @@ Global
{8EF392D5-1416-45AA-9956-7CBBC3229E8A} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{08B3E6B9-1CD5-443C-9F61-6D49D1C5F162} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{7B92AF71-6287-4693-9DCB-BD5B6E927E23} = {7CF9789C-F1D3-4D0E-90E5-F1DF67A2753F}
- {FF69B927-C545-49AE-8E16-3D14D621AA12} = {7CF9789C-F1D3-4D0E-90E5-F1DF67A2753F}
{4488AD85-1495-4809-9AA4-DDFE0A48527E} = {0CB0B92E-6CFF-4240-80A5-CCAFE75D91E1}
{E1AA3DBF-9056-4530-9376-18119A7A3FFE} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{88060192-33D5-4932-B0F9-8BD2763E857D} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
@@ -2313,7 +1977,6 @@ Global
{E1240B49-7B4B-4371-A00E-068778C5CF0B} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{D49233F8-F29C-47DD-9975-C4C9E4502720} = {E870DCD7-F46A-498D-83FC-D0FD13E0A11C}
{3C471044-3640-45E3-B1B2-16D2FF8399EE} = {E870DCD7-F46A-498D-83FC-D0FD13E0A11C}
- {AF227847-E65C-4BE9-BCE9-B551357788E0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{41B02319-965D-4945-8005-C1A3D1224165} = {86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B}
{D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{AF915D5C-AB00-4EA0-B5E6-001F4AE84E68} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
diff --git a/Directory.Build.props b/Directory.Build.props
index 835decc672..97781b7517 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,5 +5,6 @@
falsefalse
+ False
diff --git a/NuGet.Config b/NuGet.Config
index 7a1f28bea7..7d2bd8abd2 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -5,5 +5,6 @@
+
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 79456b117b..edf3c3d819 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -31,14 +31,14 @@ jobs:
vmImage: 'ubuntu-20.04'
steps:
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 3.1.414'
+ displayName: 'Use .NET Core SDK 3.1.418'
inputs:
- version: 3.1.414
+ version: 3.1.418
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 6.0.100'
+ displayName: 'Use .NET Core SDK 6.0.202'
inputs:
- version: 6.0.200
+ version: 6.0.202
- task: CmdLine@2
displayName: 'Run Build'
@@ -62,14 +62,14 @@ jobs:
vmImage: 'macOS-10.15'
steps:
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 3.1.414'
+ displayName: 'Use .NET Core SDK 3.1.418'
inputs:
- version: 3.1.414
+ version: 3.1.418
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 6.0.100'
+ displayName: 'Use .NET Core SDK 6.0.202'
inputs:
- version: 6.0.200
+ version: 6.0.202
- task: CmdLine@2
displayName: 'Install Mono 5.18'
@@ -134,20 +134,20 @@ jobs:
SolutionDir: '$(Build.SourcesDirectory)'
steps:
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 3.1.414'
+ displayName: 'Use .NET Core SDK 3.1.418'
inputs:
- version: 3.1.414
+ version: 3.1.418
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 6.0.100'
+ displayName: 'Use .NET Core SDK 6.0.202'
inputs:
- version: 6.0.200
+ version: 6.0.202
- task: CmdLine@2
displayName: 'Install Workloads'
inputs:
script: |
- dotnet workload install --no-cache --disable-parallel android ios --skip-manifest-update --source "https://api.nuget.org/v3/index.json"
+ dotnet workload install android ios
- task: CmdLine@2
displayName: 'Install Nuke'
diff --git a/build/CoreLibraries.props b/build/CoreLibraries.props
index 6bf69603c0..314d38190a 100644
--- a/build/CoreLibraries.props
+++ b/build/CoreLibraries.props
@@ -1,14 +1,8 @@
-
-
-
-
-
-
diff --git a/build/HarfBuzzSharp.props b/build/HarfBuzzSharp.props
index 6dd6cccb53..e10de93530 100644
--- a/build/HarfBuzzSharp.props
+++ b/build/HarfBuzzSharp.props
@@ -1,7 +1,7 @@
-
-
-
+
+
+
diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props
index 60bebaad40..a217a8272d 100644
--- a/build/SkiaSharp.props
+++ b/build/SkiaSharp.props
@@ -1,7 +1,7 @@
-
-
-
+
+
+
diff --git a/global.json b/global.json
index 30265268dc..a6792b05c7 100644
--- a/global.json
+++ b/global.json
@@ -1,11 +1,10 @@
{
"sdk": {
- "version": "6.0.200",
+ "version": "6.0.202",
"rollForward": "latestFeature"
},
"msbuild-sdks": {
"Microsoft.Build.Traversal": "1.0.43",
- "Xamarin.Legacy.Sdk": "0.1.2-alpha6",
"MSBuild.Sdk.Extras": "3.0.22",
"AggregatePackage.NuGet.Sdk" : "0.1.12"
}
diff --git a/native/Avalonia.Native/src/OSX/app.mm b/native/Avalonia.Native/src/OSX/app.mm
index 79175d9ff1..05b129baca 100644
--- a/native/Avalonia.Native/src/OSX/app.mm
+++ b/native/Avalonia.Native/src/OSX/app.mm
@@ -73,6 +73,11 @@ ComPtr _events;
_isHandlingSendEvent = true;
@try {
[super sendEvent: event];
+ if ([event type] == NSEventTypeKeyUp && ([event modifierFlags] & NSEventModifierFlagCommand))
+ {
+ [[self keyWindow] sendEvent:event];
+ }
+
} @finally {
_isHandlingSendEvent = oldHandling;
}
diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs
index 72d90abbf3..9fcb9d6b7f 100644
--- a/nukebuild/Build.cs
+++ b/nukebuild/Build.cs
@@ -214,17 +214,11 @@ partial class Build : NukeBuild
.DependsOn(Compile)
.Executes(() =>
{
- RunCoreTest("Avalonia.Animation.UnitTests");
RunCoreTest("Avalonia.Base.UnitTests");
RunCoreTest("Avalonia.Controls.UnitTests");
RunCoreTest("Avalonia.Controls.DataGrid.UnitTests");
- RunCoreTest("Avalonia.Input.UnitTests");
- RunCoreTest("Avalonia.Interactivity.UnitTests");
- RunCoreTest("Avalonia.Layout.UnitTests");
RunCoreTest("Avalonia.Markup.UnitTests");
RunCoreTest("Avalonia.Markup.Xaml.UnitTests");
- RunCoreTest("Avalonia.Styling.UnitTests");
- RunCoreTest("Avalonia.Visuals.UnitTests");
RunCoreTest("Avalonia.Skia.UnitTests");
RunCoreTest("Avalonia.ReactiveUI.UnitTests");
});
diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
index 9777bb46c3..04c67e84e8 100644
--- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
+++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
@@ -39,9 +39,9 @@
-
+
-
+
\ No newline at end of file
diff --git a/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj b/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
index 12d1d5645e..513ac44f83 100644
--- a/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
+++ b/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
@@ -7,10 +7,10 @@
Trueiossimulator-x64
-
+
-
+
\ No newline at end of file
diff --git a/samples/ControlCatalog/Pages/DataGridPage.xaml b/samples/ControlCatalog/Pages/DataGridPage.xaml
index f7e3cf2441..31b4039d33 100644
--- a/samples/ControlCatalog/Pages/DataGridPage.xaml
+++ b/samples/ControlCatalog/Pages/DataGridPage.xaml
@@ -13,9 +13,22 @@
+
+
+
+
@@ -31,7 +44,9 @@
-
+
diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml
index fe1487a7f2..19ac68b15b 100644
--- a/samples/IntegrationTestApp/MainWindow.axaml
+++ b/samples/IntegrationTestApp/MainWindow.axaml
@@ -82,12 +82,16 @@
- None
+
+ None
+
+
+
diff --git a/samples/IntegrationTestApp/MainWindow.axaml.cs b/samples/IntegrationTestApp/MainWindow.axaml.cs
index b9e631a312..9a612aa94d 100644
--- a/samples/IntegrationTestApp/MainWindow.axaml.cs
+++ b/samples/IntegrationTestApp/MainWindow.axaml.cs
@@ -62,6 +62,8 @@ namespace IntegrationTestApp
this.FindControl("BasicComboBox").SelectedIndex = 0;
if (source?.Name == "ListBoxSelectionClear")
this.FindControl("BasicListBox").SelectedIndex = -1;
+ if (source?.Name == "MenuClickedMenuItemReset")
+ this.FindControl("ClickedMenuItem").Text = "None";
}
}
}
diff --git a/samples/RenderDemo/Pages/PathMeasurementPage.cs b/samples/RenderDemo/Pages/PathMeasurementPage.cs
index 212377deae..cc5125609c 100644
--- a/samples/RenderDemo/Pages/PathMeasurementPage.cs
+++ b/samples/RenderDemo/Pages/PathMeasurementPage.cs
@@ -1,15 +1,9 @@
-using System;
-using System.Diagnostics;
-using System.Drawing.Drawing2D;
-using System.Security.Cryptography;
using Avalonia;
using Avalonia.Controls;
using Avalonia.LogicalTree;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Media.Immutable;
-using Avalonia.Threading;
-using Avalonia.Visuals.Media.Imaging;
namespace RenderDemo.Pages
{
diff --git a/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs b/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs
index f263786ab7..f365b59c20 100644
--- a/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs
+++ b/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs
@@ -5,7 +5,6 @@ using Avalonia.LogicalTree;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Threading;
-using Avalonia.Visuals.Media.Imaging;
namespace RenderDemo.Pages
{
diff --git a/samples/RenderDemo/RenderDemo.csproj b/samples/RenderDemo/RenderDemo.csproj
index 3d5aee49e9..18a4ee5662 100644
--- a/samples/RenderDemo/RenderDemo.csproj
+++ b/samples/RenderDemo/RenderDemo.csproj
@@ -4,7 +4,7 @@
net6.0
-
+ TextFormatterPage.axamlCode
diff --git a/src/Android/Avalonia.Android/Avalonia.Android.csproj b/src/Android/Avalonia.Android/Avalonia.Android.csproj
index ad27888f26..6688dde8f5 100644
--- a/src/Android/Avalonia.Android/Avalonia.Android.csproj
+++ b/src/Android/Avalonia.Android/Avalonia.Android.csproj
@@ -1,7 +1,6 @@
-
+
- net6.0-android
- $(TargetFrameworks);monoandroid11.0
+ net6.0-android21truetrue
diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
deleted file mode 100644
index db0bb01410..0000000000
--- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- net6.0-android
- 21
- Exe
- enable
- com.Avalonia.AndroidTestApplication
- 1
- 1.0
- apk
- true
- portable
-
-
-
-
- Resources\drawable\Icon.png
-
-
-
-
- True
- True
- True
- True
-
-
-
-
-
-
- True
-
-
-
- True
-
-
-
-
-
-
-
diff --git a/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs b/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs
deleted file mode 100644
index 8f4beb2737..0000000000
--- a/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-using System;
-using Android.App;
-using Android.Content.PM;
-using Avalonia.Android;
-using Avalonia.Controls;
-using Avalonia.Controls.ApplicationLifetimes;
-using Avalonia.Input.TextInput;
-using Avalonia.Markup.Xaml;
-using Avalonia.Media;
-using Avalonia.Styling;
-using Avalonia.Themes.Default;
-
-namespace Avalonia.AndroidTestApplication
-{
- [Activity(Label = "Main",
- MainLauncher = true,
- Icon = "@drawable/icon",
- Theme = "@style/Theme.AppCompat.NoActionBar",
- ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize,
- LaunchMode = LaunchMode.SingleInstance/*,
- ScreenOrientation = ScreenOrientation.Landscape*/)]
- public class MainActivity : AvaloniaActivity
- {
- protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
- {
- return base.CustomizeAppBuilder(builder);
- }
- }
-
- public class App : Application
- {
- public override void Initialize()
- {
- Styles.Add(new SimpleTheme(new Uri("avares://Avalonia.AndroidTestApplication")));
- }
-
- public override void OnFrameworkInitializationCompleted()
- {
- if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime)
- {
- singleViewLifetime.MainView = CreateSimpleWindow();
- }
-
- base.OnFrameworkInitializationCompleted();
- }
-
- // This provides a simple UI tree for testing input handling, drawing, etc
- public static ContentControl CreateSimpleWindow()
- {
- ContentControl window = new ContentControl()
- {
- Background = Brushes.Red,
- Content = new StackPanel
- {
- Margin = new Thickness(30),
- Background = Brushes.Yellow,
- Children =
- {
- new TextBlock
- {
- Text = "TEXT BLOCK",
- Width = 300,
- Height = 40,
- Background = Brushes.White,
- Foreground = Brushes.Black
- },
-
- new Button
- {
- Content = "BUTTON",
- Width = 150,
- Height = 40,
- Background = Brushes.LightGreen,
- Foreground = Brushes.Black
- },
-
- CreateTextBox(TextInputContentType.Normal),
- CreateTextBox(TextInputContentType.Password),
- CreateTextBox(TextInputContentType.Email),
- CreateTextBox(TextInputContentType.Url),
- CreateTextBox(TextInputContentType.Digits),
- CreateTextBox(TextInputContentType.Number),
- }
- }
- };
-
- return window;
- }
-
- private static TextBox CreateTextBox(TextInputContentType contentType)
- {
- var textBox = new TextBox()
- {
- Margin = new Thickness(20, 10),
- Watermark = contentType.ToString(),
- BorderThickness = new Thickness(3),
- FontSize = 20,
- [TextInputOptions.ContentTypeProperty] = contentType
- };
-
- return textBox;
- }
- }
-}
diff --git a/src/Android/Avalonia.AndroidTestApplication/Properties/AndroidManifest.xml b/src/Android/Avalonia.AndroidTestApplication/Properties/AndroidManifest.xml
deleted file mode 100644
index ad8134f628..0000000000
--- a/src/Android/Avalonia.AndroidTestApplication/Properties/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/src/Android/Avalonia.AndroidTestApplication/Resources/AboutResources.txt b/src/Android/Avalonia.AndroidTestApplication/Resources/AboutResources.txt
deleted file mode 100644
index 194ae28a59..0000000000
--- a/src/Android/Avalonia.AndroidTestApplication/Resources/AboutResources.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Images, layout descriptions, binary blobs and string dictionaries can be included
-in your application as resource files. Various Android APIs are designed to
-operate on the resource IDs instead of dealing with images, strings or binary blobs
-directly.
-
-For example, a sample Android app that contains a user interface layout (main.xml),
-an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
-would keep its resources in the "Resources" directory of the application:
-
-Resources/
- drawable-hdpi/
- icon.png
-
- drawable-ldpi/
- icon.png
-
- drawable-mdpi/
- icon.png
-
- layout/
- main.xml
-
- values/
- strings.xml
-
-In order to get the build system to recognize Android resources, set the build action to
-"AndroidResource". The native Android APIs do not operate directly with filenames, but
-instead operate on resource IDs. When you compile an Android application that uses resources,
-the build system will package the resources for distribution and generate a class called
-"Resource" that contains the tokens for each one of the resources included. For example,
-for the above Resources layout, this is what the Resource class would expose:
-
-public class Resource {
- public class drawable {
- public const int icon = 0x123;
- }
-
- public class layout {
- public const int main = 0x456;
- }
-
- public class strings {
- public const int first_string = 0xabc;
- public const int second_string = 0xbcd;
- }
-}
-
-You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main
-to reference the layout/main.xml file, or Resource.strings.first_string to reference the first
-string in the dictionary file values/strings.xml.
\ No newline at end of file
diff --git a/src/Android/Avalonia.AndroidTestApplication/Resources/drawable/Icon.png b/src/Android/Avalonia.AndroidTestApplication/Resources/drawable/Icon.png
deleted file mode 100644
index 8074c4c571..0000000000
Binary files a/src/Android/Avalonia.AndroidTestApplication/Resources/drawable/Icon.png and /dev/null differ
diff --git a/src/Android/Avalonia.AndroidTestApplication/Resources/values/Strings.xml b/src/Android/Avalonia.AndroidTestApplication/Resources/values/Strings.xml
deleted file mode 100644
index c8dca13c35..0000000000
--- a/src/Android/Avalonia.AndroidTestApplication/Resources/values/Strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- Hello World, Click Me!
- Avalonia.AndroidTestApplication
-
\ No newline at end of file
diff --git a/src/Avalonia.Animation/ApiCompatBaseline.txt b/src/Avalonia.Animation/ApiCompatBaseline.txt
deleted file mode 100644
index 973698f872..0000000000
--- a/src/Avalonia.Animation/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Compat issues with assembly Avalonia.Animation:
-InterfacesShouldHaveSameMembers : Interface member 'public System.Threading.Tasks.Task Avalonia.Animation.IAnimation.RunAsync(Avalonia.Animation.Animatable, Avalonia.Animation.IClock)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.IAnimation.RunAsync(Avalonia.Animation.Animatable, Avalonia.Animation.IClock)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Threading.Tasks.Task Avalonia.Animation.IAnimation.RunAsync(Avalonia.Animation.Animatable, Avalonia.Animation.IClock, System.Threading.CancellationToken)' is present in the implementation but not in the contract.
-Total Issues: 3
diff --git a/src/Avalonia.Animation/Avalonia.Animation.csproj b/src/Avalonia.Animation/Avalonia.Animation.csproj
deleted file mode 100644
index 80726f2884..0000000000
--- a/src/Avalonia.Animation/Avalonia.Animation.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- net6.0;netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Animation/Properties/AssemblyInfo.cs b/src/Avalonia.Animation/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6b539b075b..0000000000
--- a/src/Avalonia.Animation/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Avalonia.Metadata;
-using System.Runtime.CompilerServices;
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Animators")]
-
-[assembly: InternalsVisibleTo("Avalonia.LeakTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Animation.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
diff --git a/src/Avalonia.Animation/Animatable.cs b/src/Avalonia.Base/Animation/Animatable.cs
similarity index 100%
rename from src/Avalonia.Animation/Animatable.cs
rename to src/Avalonia.Base/Animation/Animatable.cs
diff --git a/src/Avalonia.Animation/Animation.cs b/src/Avalonia.Base/Animation/Animation.cs
similarity index 100%
rename from src/Avalonia.Animation/Animation.cs
rename to src/Avalonia.Base/Animation/Animation.cs
diff --git a/src/Avalonia.Animation/AnimationInstance`1.cs b/src/Avalonia.Base/Animation/AnimationInstance`1.cs
similarity index 100%
rename from src/Avalonia.Animation/AnimationInstance`1.cs
rename to src/Avalonia.Base/Animation/AnimationInstance`1.cs
diff --git a/src/Avalonia.Animation/AnimatorDrivenTransition.cs b/src/Avalonia.Base/Animation/AnimatorDrivenTransition.cs
similarity index 100%
rename from src/Avalonia.Animation/AnimatorDrivenTransition.cs
rename to src/Avalonia.Base/Animation/AnimatorDrivenTransition.cs
diff --git a/src/Avalonia.Animation/AnimatorKeyFrame.cs b/src/Avalonia.Base/Animation/AnimatorKeyFrame.cs
similarity index 100%
rename from src/Avalonia.Animation/AnimatorKeyFrame.cs
rename to src/Avalonia.Base/Animation/AnimatorKeyFrame.cs
diff --git a/src/Avalonia.Animation/AnimatorTransitionObservable.cs b/src/Avalonia.Base/Animation/AnimatorTransitionObservable.cs
similarity index 100%
rename from src/Avalonia.Animation/AnimatorTransitionObservable.cs
rename to src/Avalonia.Base/Animation/AnimatorTransitionObservable.cs
diff --git a/src/Avalonia.Animation/Animators/Animator`1.cs b/src/Avalonia.Base/Animation/Animators/Animator`1.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/Animator`1.cs
rename to src/Avalonia.Base/Animation/Animators/Animator`1.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/BaseBrushAnimator.cs b/src/Avalonia.Base/Animation/Animators/BaseBrushAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/BaseBrushAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/BaseBrushAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/BoolAnimator.cs b/src/Avalonia.Base/Animation/Animators/BoolAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/BoolAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/BoolAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/BoxShadowAnimator.cs b/src/Avalonia.Base/Animation/Animators/BoxShadowAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/BoxShadowAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/BoxShadowAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/BoxShadowsAnimator.cs b/src/Avalonia.Base/Animation/Animators/BoxShadowsAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/BoxShadowsAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/BoxShadowsAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/ByteAnimator.cs b/src/Avalonia.Base/Animation/Animators/ByteAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/ByteAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/ByteAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/ColorAnimator.cs b/src/Avalonia.Base/Animation/Animators/ColorAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/ColorAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/ColorAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/CornerRadiusAnimator.cs b/src/Avalonia.Base/Animation/Animators/CornerRadiusAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/CornerRadiusAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/CornerRadiusAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/DecimalAnimator.cs b/src/Avalonia.Base/Animation/Animators/DecimalAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/DecimalAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/DecimalAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/DoubleAnimator.cs b/src/Avalonia.Base/Animation/Animators/DoubleAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/DoubleAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/DoubleAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/FloatAnimator.cs b/src/Avalonia.Base/Animation/Animators/FloatAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/FloatAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/FloatAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/GradientBrushAnimator.cs b/src/Avalonia.Base/Animation/Animators/GradientBrushAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/GradientBrushAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/GradientBrushAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/Int16Animator.cs b/src/Avalonia.Base/Animation/Animators/Int16Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/Int16Animator.cs
rename to src/Avalonia.Base/Animation/Animators/Int16Animator.cs
diff --git a/src/Avalonia.Animation/Animators/Int32Animator.cs b/src/Avalonia.Base/Animation/Animators/Int32Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/Int32Animator.cs
rename to src/Avalonia.Base/Animation/Animators/Int32Animator.cs
diff --git a/src/Avalonia.Animation/Animators/Int64Animator.cs b/src/Avalonia.Base/Animation/Animators/Int64Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/Int64Animator.cs
rename to src/Avalonia.Base/Animation/Animators/Int64Animator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/PointAnimator.cs b/src/Avalonia.Base/Animation/Animators/PointAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/PointAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/PointAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/RectAnimator.cs b/src/Avalonia.Base/Animation/Animators/RectAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/RectAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/RectAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/RelativePointAnimator.cs b/src/Avalonia.Base/Animation/Animators/RelativePointAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/RelativePointAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/RelativePointAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/SizeAnimator.cs b/src/Avalonia.Base/Animation/Animators/SizeAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/SizeAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/SizeAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/SolidColorBrushAnimator.cs b/src/Avalonia.Base/Animation/Animators/SolidColorBrushAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/SolidColorBrushAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/SolidColorBrushAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/ThicknessAnimator.cs b/src/Avalonia.Base/Animation/Animators/ThicknessAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/ThicknessAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/ThicknessAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/TransformAnimator.cs b/src/Avalonia.Base/Animation/Animators/TransformAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/TransformAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/TransformAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/TransformOperationsAnimator.cs b/src/Avalonia.Base/Animation/Animators/TransformOperationsAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/TransformOperationsAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/TransformOperationsAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/UInt16Animator.cs b/src/Avalonia.Base/Animation/Animators/UInt16Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/UInt16Animator.cs
rename to src/Avalonia.Base/Animation/Animators/UInt16Animator.cs
diff --git a/src/Avalonia.Animation/Animators/UInt32Animator.cs b/src/Avalonia.Base/Animation/Animators/UInt32Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/UInt32Animator.cs
rename to src/Avalonia.Base/Animation/Animators/UInt32Animator.cs
diff --git a/src/Avalonia.Animation/Animators/UInt64Animator.cs b/src/Avalonia.Base/Animation/Animators/UInt64Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/UInt64Animator.cs
rename to src/Avalonia.Base/Animation/Animators/UInt64Animator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/VectorAnimator.cs b/src/Avalonia.Base/Animation/Animators/VectorAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/VectorAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/VectorAnimator.cs
diff --git a/src/Avalonia.Animation/Clock.cs b/src/Avalonia.Base/Animation/Clock.cs
similarity index 100%
rename from src/Avalonia.Animation/Clock.cs
rename to src/Avalonia.Base/Animation/Clock.cs
diff --git a/src/Avalonia.Animation/ClockBase.cs b/src/Avalonia.Base/Animation/ClockBase.cs
similarity index 100%
rename from src/Avalonia.Animation/ClockBase.cs
rename to src/Avalonia.Base/Animation/ClockBase.cs
diff --git a/src/Avalonia.Visuals/Animation/CompositePageTransition.cs b/src/Avalonia.Base/Animation/CompositePageTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/CompositePageTransition.cs
rename to src/Avalonia.Base/Animation/CompositePageTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/CrossFade.cs b/src/Avalonia.Base/Animation/CrossFade.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/CrossFade.cs
rename to src/Avalonia.Base/Animation/CrossFade.cs
diff --git a/src/Avalonia.Animation/Cue.cs b/src/Avalonia.Base/Animation/Cue.cs
similarity index 100%
rename from src/Avalonia.Animation/Cue.cs
rename to src/Avalonia.Base/Animation/Cue.cs
diff --git a/src/Avalonia.Animation/DisposeAnimationInstanceSubject.cs b/src/Avalonia.Base/Animation/DisposeAnimationInstanceSubject.cs
similarity index 100%
rename from src/Avalonia.Animation/DisposeAnimationInstanceSubject.cs
rename to src/Avalonia.Base/Animation/DisposeAnimationInstanceSubject.cs
diff --git a/src/Avalonia.Animation/Easing/BackEaseIn.cs b/src/Avalonia.Base/Animation/Easings/BackEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BackEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/BackEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/BackEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/BackEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BackEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/BackEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/BackEaseOut.cs b/src/Avalonia.Base/Animation/Easings/BackEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BackEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/BackEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/BounceEaseIn.cs b/src/Avalonia.Base/Animation/Easings/BounceEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BounceEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/BounceEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/BounceEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/BounceEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BounceEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/BounceEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/BounceEaseOut.cs b/src/Avalonia.Base/Animation/Easings/BounceEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BounceEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/BounceEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/CircularEaseIn.cs b/src/Avalonia.Base/Animation/Easings/CircularEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CircularEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/CircularEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/CircularEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/CircularEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CircularEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/CircularEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/CircularEaseOut.cs b/src/Avalonia.Base/Animation/Easings/CircularEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CircularEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/CircularEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/CubicEaseIn.cs b/src/Avalonia.Base/Animation/Easings/CubicEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CubicEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/CubicEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/CubicEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/CubicEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CubicEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/CubicEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/CubicEaseOut.cs b/src/Avalonia.Base/Animation/Easings/CubicEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CubicEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/CubicEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/Easing.cs b/src/Avalonia.Base/Animation/Easings/Easing.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/Easing.cs
rename to src/Avalonia.Base/Animation/Easings/Easing.cs
diff --git a/src/Avalonia.Animation/Easing/EasingTypeConverter.cs b/src/Avalonia.Base/Animation/Easings/EasingTypeConverter.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/EasingTypeConverter.cs
rename to src/Avalonia.Base/Animation/Easings/EasingTypeConverter.cs
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseIn.cs b/src/Avalonia.Base/Animation/Easings/ElasticEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ElasticEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/ElasticEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/ElasticEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ElasticEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/ElasticEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseOut.cs b/src/Avalonia.Base/Animation/Easings/ElasticEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ElasticEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/ElasticEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseIn.cs b/src/Avalonia.Base/Animation/Easings/ExponentialEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ExponentialEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/ExponentialEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/ExponentialEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ExponentialEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/ExponentialEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseOut.cs b/src/Avalonia.Base/Animation/Easings/ExponentialEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ExponentialEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/ExponentialEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/IEasing.cs b/src/Avalonia.Base/Animation/Easings/IEasing.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/IEasing.cs
rename to src/Avalonia.Base/Animation/Easings/IEasing.cs
diff --git a/src/Avalonia.Animation/Easing/LinearEasing.cs b/src/Avalonia.Base/Animation/Easings/LinearEasing.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/LinearEasing.cs
rename to src/Avalonia.Base/Animation/Easings/LinearEasing.cs
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseIn.cs b/src/Avalonia.Base/Animation/Easings/QuadraticEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuadraticEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/QuadraticEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/QuadraticEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuadraticEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuadraticEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseOut.cs b/src/Avalonia.Base/Animation/Easings/QuadraticEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuadraticEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuadraticEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseIn.cs b/src/Avalonia.Base/Animation/Easings/QuarticEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuarticEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/QuarticEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/QuarticEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuarticEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuarticEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseOut.cs b/src/Avalonia.Base/Animation/Easings/QuarticEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuarticEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuarticEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseIn.cs b/src/Avalonia.Base/Animation/Easings/QuinticEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuinticEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/QuinticEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/QuinticEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuinticEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuinticEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseOut.cs b/src/Avalonia.Base/Animation/Easings/QuinticEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuinticEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuinticEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/SineEaseIn.cs b/src/Avalonia.Base/Animation/Easings/SineEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/SineEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/SineEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/SineEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/SineEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/SineEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/SineEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/SineEaseOut.cs b/src/Avalonia.Base/Animation/Easings/SineEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/SineEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/SineEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/SplineEasing.cs b/src/Avalonia.Base/Animation/Easings/SplineEasing.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/SplineEasing.cs
rename to src/Avalonia.Base/Animation/Easings/SplineEasing.cs
diff --git a/src/Avalonia.Animation/FillMode.cs b/src/Avalonia.Base/Animation/FillMode.cs
similarity index 100%
rename from src/Avalonia.Animation/FillMode.cs
rename to src/Avalonia.Base/Animation/FillMode.cs
diff --git a/src/Avalonia.Animation/IAnimation.cs b/src/Avalonia.Base/Animation/IAnimation.cs
similarity index 100%
rename from src/Avalonia.Animation/IAnimation.cs
rename to src/Avalonia.Base/Animation/IAnimation.cs
diff --git a/src/Avalonia.Animation/IAnimationSetter.cs b/src/Avalonia.Base/Animation/IAnimationSetter.cs
similarity index 100%
rename from src/Avalonia.Animation/IAnimationSetter.cs
rename to src/Avalonia.Base/Animation/IAnimationSetter.cs
diff --git a/src/Avalonia.Animation/IAnimator.cs b/src/Avalonia.Base/Animation/IAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/IAnimator.cs
rename to src/Avalonia.Base/Animation/IAnimator.cs
diff --git a/src/Avalonia.Animation/IClock.cs b/src/Avalonia.Base/Animation/IClock.cs
similarity index 100%
rename from src/Avalonia.Animation/IClock.cs
rename to src/Avalonia.Base/Animation/IClock.cs
diff --git a/src/Avalonia.Animation/IGlobalClock.cs b/src/Avalonia.Base/Animation/IGlobalClock.cs
similarity index 100%
rename from src/Avalonia.Animation/IGlobalClock.cs
rename to src/Avalonia.Base/Animation/IGlobalClock.cs
diff --git a/src/Avalonia.Visuals/Animation/IPageTransition.cs b/src/Avalonia.Base/Animation/IPageTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/IPageTransition.cs
rename to src/Avalonia.Base/Animation/IPageTransition.cs
diff --git a/src/Avalonia.Animation/ITransition.cs b/src/Avalonia.Base/Animation/ITransition.cs
similarity index 100%
rename from src/Avalonia.Animation/ITransition.cs
rename to src/Avalonia.Base/Animation/ITransition.cs
diff --git a/src/Avalonia.Animation/IterationCount.cs b/src/Avalonia.Base/Animation/IterationCount.cs
similarity index 100%
rename from src/Avalonia.Animation/IterationCount.cs
rename to src/Avalonia.Base/Animation/IterationCount.cs
diff --git a/src/Avalonia.Animation/IterationCountTypeConverter.cs b/src/Avalonia.Base/Animation/IterationCountTypeConverter.cs
similarity index 100%
rename from src/Avalonia.Animation/IterationCountTypeConverter.cs
rename to src/Avalonia.Base/Animation/IterationCountTypeConverter.cs
diff --git a/src/Avalonia.Animation/KeyFrame.cs b/src/Avalonia.Base/Animation/KeyFrame.cs
similarity index 100%
rename from src/Avalonia.Animation/KeyFrame.cs
rename to src/Avalonia.Base/Animation/KeyFrame.cs
diff --git a/src/Avalonia.Animation/KeyFrames.cs b/src/Avalonia.Base/Animation/KeyFrames.cs
similarity index 100%
rename from src/Avalonia.Animation/KeyFrames.cs
rename to src/Avalonia.Base/Animation/KeyFrames.cs
diff --git a/src/Avalonia.Animation/KeySpline.cs b/src/Avalonia.Base/Animation/KeySpline.cs
similarity index 100%
rename from src/Avalonia.Animation/KeySpline.cs
rename to src/Avalonia.Base/Animation/KeySpline.cs
diff --git a/src/Avalonia.Animation/KeySplineTypeConverter.cs b/src/Avalonia.Base/Animation/KeySplineTypeConverter.cs
similarity index 100%
rename from src/Avalonia.Animation/KeySplineTypeConverter.cs
rename to src/Avalonia.Base/Animation/KeySplineTypeConverter.cs
diff --git a/src/Avalonia.Visuals/Animation/PageSlide.cs b/src/Avalonia.Base/Animation/PageSlide.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/PageSlide.cs
rename to src/Avalonia.Base/Animation/PageSlide.cs
diff --git a/src/Avalonia.Animation/PlayState.cs b/src/Avalonia.Base/Animation/PlayState.cs
similarity index 100%
rename from src/Avalonia.Animation/PlayState.cs
rename to src/Avalonia.Base/Animation/PlayState.cs
diff --git a/src/Avalonia.Animation/PlaybackDirection.cs b/src/Avalonia.Base/Animation/PlaybackDirection.cs
similarity index 100%
rename from src/Avalonia.Animation/PlaybackDirection.cs
rename to src/Avalonia.Base/Animation/PlaybackDirection.cs
diff --git a/src/Avalonia.Visuals/Animation/RenderLoopClock.cs b/src/Avalonia.Base/Animation/RenderLoopClock.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/RenderLoopClock.cs
rename to src/Avalonia.Base/Animation/RenderLoopClock.cs
diff --git a/src/Avalonia.Animation/Transition.cs b/src/Avalonia.Base/Animation/Transition.cs
similarity index 100%
rename from src/Avalonia.Animation/Transition.cs
rename to src/Avalonia.Base/Animation/Transition.cs
diff --git a/src/Avalonia.Animation/TransitionInstance.cs b/src/Avalonia.Base/Animation/TransitionInstance.cs
similarity index 100%
rename from src/Avalonia.Animation/TransitionInstance.cs
rename to src/Avalonia.Base/Animation/TransitionInstance.cs
diff --git a/src/Avalonia.Animation/TransitionObservableBase.cs b/src/Avalonia.Base/Animation/TransitionObservableBase.cs
similarity index 100%
rename from src/Avalonia.Animation/TransitionObservableBase.cs
rename to src/Avalonia.Base/Animation/TransitionObservableBase.cs
diff --git a/src/Avalonia.Animation/Transitions.cs b/src/Avalonia.Base/Animation/Transitions.cs
similarity index 100%
rename from src/Avalonia.Animation/Transitions.cs
rename to src/Avalonia.Base/Animation/Transitions.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/BoxShadowsTransition.cs b/src/Avalonia.Base/Animation/Transitions/BoxShadowsTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/BoxShadowsTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/BoxShadowsTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/BrushTransition.cs b/src/Avalonia.Base/Animation/Transitions/BrushTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/BrushTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/BrushTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/ColorTransition.cs b/src/Avalonia.Base/Animation/Transitions/ColorTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/ColorTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/ColorTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/CornerRadiusTransition.cs b/src/Avalonia.Base/Animation/Transitions/CornerRadiusTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/CornerRadiusTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/CornerRadiusTransition.cs
diff --git a/src/Avalonia.Animation/Transitions/DoubleTransition.cs b/src/Avalonia.Base/Animation/Transitions/DoubleTransition.cs
similarity index 100%
rename from src/Avalonia.Animation/Transitions/DoubleTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/DoubleTransition.cs
diff --git a/src/Avalonia.Animation/Transitions/FloatTransition.cs b/src/Avalonia.Base/Animation/Transitions/FloatTransition.cs
similarity index 100%
rename from src/Avalonia.Animation/Transitions/FloatTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/FloatTransition.cs
diff --git a/src/Avalonia.Animation/Transitions/IntegerTransition.cs b/src/Avalonia.Base/Animation/Transitions/IntegerTransition.cs
similarity index 100%
rename from src/Avalonia.Animation/Transitions/IntegerTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/IntegerTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/PointTransition.cs b/src/Avalonia.Base/Animation/Transitions/PointTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/PointTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/PointTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/RelativePointTransition.cs b/src/Avalonia.Base/Animation/Transitions/RelativePointTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/RelativePointTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/RelativePointTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/SizeTransition.cs b/src/Avalonia.Base/Animation/Transitions/SizeTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/SizeTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/SizeTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/ThicknessTransition.cs b/src/Avalonia.Base/Animation/Transitions/ThicknessTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/ThicknessTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/ThicknessTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/TransformOperationsTransition.cs b/src/Avalonia.Base/Animation/Transitions/TransformOperationsTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/TransformOperationsTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/TransformOperationsTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/VectorTransition.cs b/src/Avalonia.Base/Animation/Transitions/VectorTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/VectorTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/VectorTransition.cs
diff --git a/src/Avalonia.Animation/Utils/BounceEaseUtils.cs b/src/Avalonia.Base/Animation/Utils/BounceEaseUtils.cs
similarity index 100%
rename from src/Avalonia.Animation/Utils/BounceEaseUtils.cs
rename to src/Avalonia.Base/Animation/Utils/BounceEaseUtils.cs
diff --git a/src/Avalonia.Animation/Utils/EasingUtils.cs b/src/Avalonia.Base/Animation/Utils/EasingUtils.cs
similarity index 100%
rename from src/Avalonia.Animation/Utils/EasingUtils.cs
rename to src/Avalonia.Base/Animation/Utils/EasingUtils.cs
diff --git a/src/Avalonia.Visuals/Assets/BiDi.trie b/src/Avalonia.Base/Assets/BiDi.trie
similarity index 100%
rename from src/Avalonia.Visuals/Assets/BiDi.trie
rename to src/Avalonia.Base/Assets/BiDi.trie
diff --git a/src/Avalonia.Visuals/Assets/GraphemeBreak.trie b/src/Avalonia.Base/Assets/GraphemeBreak.trie
similarity index 100%
rename from src/Avalonia.Visuals/Assets/GraphemeBreak.trie
rename to src/Avalonia.Base/Assets/GraphemeBreak.trie
diff --git a/src/Avalonia.Visuals/Assets/UnicodeData.trie b/src/Avalonia.Base/Assets/UnicodeData.trie
similarity index 100%
rename from src/Avalonia.Visuals/Assets/UnicodeData.trie
rename to src/Avalonia.Base/Assets/UnicodeData.trie
diff --git a/src/Avalonia.Base/Avalonia.Base.csproj b/src/Avalonia.Base/Avalonia.Base.csproj
index 637b86d759..5b79d3cd7b 100644
--- a/src/Avalonia.Base/Avalonia.Base.csproj
+++ b/src/Avalonia.Base/Avalonia.Base.csproj
@@ -5,6 +5,9 @@
AvaloniaTrue
+
+
+
diff --git a/src/Avalonia.Visuals/AvaloniaPropertyExtensions.cs b/src/Avalonia.Base/AvaloniaPropertyExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/AvaloniaPropertyExtensions.cs
rename to src/Avalonia.Base/AvaloniaPropertyExtensions.cs
diff --git a/src/Avalonia.Styling/ClassBindingManager.cs b/src/Avalonia.Base/ClassBindingManager.cs
similarity index 100%
rename from src/Avalonia.Styling/ClassBindingManager.cs
rename to src/Avalonia.Base/ClassBindingManager.cs
diff --git a/src/Avalonia.Visuals/Media/CombinedGeometry.cs b/src/Avalonia.Base/CombinedGeometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/CombinedGeometry.cs
rename to src/Avalonia.Base/CombinedGeometry.cs
diff --git a/src/Avalonia.Styling/Controls/ChildNameScope.cs b/src/Avalonia.Base/Controls/ChildNameScope.cs
similarity index 99%
rename from src/Avalonia.Styling/Controls/ChildNameScope.cs
rename to src/Avalonia.Base/Controls/ChildNameScope.cs
index 58114a57fd..1ceaff924c 100644
--- a/src/Avalonia.Styling/Controls/ChildNameScope.cs
+++ b/src/Avalonia.Base/Controls/ChildNameScope.cs
@@ -22,7 +22,7 @@ namespace Avalonia.Controls
return new SynchronousCompletionAsyncResult
-
-
-
-
-
-
diff --git a/src/Avalonia.Controls/Calendar/DateTimeHelper.cs b/src/Avalonia.Controls/Calendar/DateTimeHelper.cs
index eb90f6c399..7a5c74a51b 100644
--- a/src/Avalonia.Controls/Calendar/DateTimeHelper.cs
+++ b/src/Avalonia.Controls/Calendar/DateTimeHelper.cs
@@ -68,10 +68,7 @@ namespace Avalonia.Controls
public static DateTime DiscardDayTime(DateTime d)
{
- int year = d.Year;
- int month = d.Month;
- DateTime newD = new DateTime(year, month, 1, 0, 0, 0);
- return newD;
+ return new DateTime(d.Year, d.Month, 1, 0, 0, 0);
}
[return: NotNullIfNotNull("d")]
diff --git a/src/Avalonia.Controls/DateTimePickers/DateTimePickerPanel.cs b/src/Avalonia.Controls/DateTimePickers/DateTimePickerPanel.cs
index a923c44d05..667f994a1d 100644
--- a/src/Avalonia.Controls/DateTimePickers/DateTimePickerPanel.cs
+++ b/src/Avalonia.Controls/DateTimePickers/DateTimePickerPanel.cs
@@ -1,7 +1,9 @@
using System;
using System.Globalization;
using System.Linq;
+using Avalonia.Controls.Presenters;
using Avalonia.Input;
+using Avalonia.Input.GestureRecognizers;
using Avalonia.Interactivity;
using Avalonia.Media;
using Avalonia.VisualTree;
@@ -60,6 +62,7 @@ namespace Avalonia.Controls.Primitives
private Vector _offset;
private bool _hasInit;
private bool _suppressUpdateOffset;
+ private ScrollContentPresenter? _parentScroller;
public DateTimePickerPanel()
{
@@ -255,6 +258,8 @@ namespace Avalonia.Controls.Primitives
_suppressUpdateOffset = true;
SelectedValue = (int)newSel * Increment + MinimumValue;
_suppressUpdateOffset = false;
+
+ System.Diagnostics.Debug.WriteLine($"Offset: {_offset} ItemHeight: {ItemHeight}");
}
}
@@ -270,7 +275,7 @@ namespace Avalonia.Controls.Primitives
public Size Extent => _extent;
- public Size Viewport => new Size(0, ItemHeight);
+ public Size Viewport => Bounds.Size;
public event EventHandler? ScrollInvalidated;
@@ -341,6 +346,20 @@ namespace Avalonia.Controls.Primitives
return finalSize;
}
+ protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
+ {
+ base.OnAttachedToVisualTree(e);
+ _parentScroller = this.GetVisualParent() as ScrollContentPresenter;
+ _parentScroller?.AddHandler(Gestures.ScrollGestureEndedEvent, OnScrollGestureEnded);
+ }
+
+ protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)
+ {
+ base.OnDetachedFromVisualTree(e);
+ _parentScroller?.RemoveHandler(Gestures.ScrollGestureEndedEvent, OnScrollGestureEnded);
+ _parentScroller = null;
+ }
+
protected override void OnKeyDown(KeyEventArgs e)
{
switch (e.Key)
@@ -554,5 +573,15 @@ namespace Avalonia.Controls.Primitives
{
ScrollInvalidated?.Invoke(this, e);
}
+
+ private void OnScrollGestureEnded(object? sender, ScrollGestureEndedEventArgs e)
+ {
+ var snapY = Math.Round(Offset.Y / ItemHeight) * ItemHeight;
+
+ if (snapY != Offset.Y)
+ {
+ Offset = Offset.WithY(snapY);
+ }
+ }
}
}
diff --git a/src/Avalonia.Controls/ItemsControl.cs b/src/Avalonia.Controls/ItemsControl.cs
index afe4a08446..ab236f703d 100644
--- a/src/Avalonia.Controls/ItemsControl.cs
+++ b/src/Avalonia.Controls/ItemsControl.cs
@@ -166,7 +166,7 @@ namespace Avalonia.Controls
if (Presenter is IChildIndexProvider innerProvider)
{
innerProvider.ChildIndexChanged += PresenterChildIndexChanged;
- _childIndexChanged?.Invoke(this, new ChildIndexChangedEventArgs());
+ _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.Empty);
}
}
diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs
index c03c6000d8..955af8888b 100644
--- a/src/Avalonia.Controls/MenuItem.cs
+++ b/src/Avalonia.Controls/MenuItem.cs
@@ -644,7 +644,9 @@ namespace Avalonia.Controls
/// The property change event.
private void IsSelectedChanged(AvaloniaPropertyChangedEventArgs e)
{
- if ((bool)e.NewValue!)
+ var parentMenu = Parent as Menu;
+
+ if ((bool)e.NewValue! && (parentMenu is null || parentMenu.IsOpen))
{
Focus();
}
diff --git a/src/Avalonia.Controls/Panel.cs b/src/Avalonia.Controls/Panel.cs
index 482a7fab84..2230b4b0d2 100644
--- a/src/Avalonia.Controls/Panel.cs
+++ b/src/Avalonia.Controls/Panel.cs
@@ -147,7 +147,7 @@ namespace Avalonia.Controls
throw new NotSupportedException();
}
- _childIndexChanged?.Invoke(this, new ChildIndexChangedEventArgs());
+ _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.Empty);
InvalidateMeasureOnChildrenChanged();
}
diff --git a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
index 23ecdb2e7b..6e9ac537f1 100644
--- a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
+++ b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
@@ -149,13 +149,18 @@ namespace Avalonia.Controls.Platform
case Key.Up:
case Key.Down:
{
- if (item?.IsTopLevel == true)
+ if (item?.IsTopLevel == true && item.HasSubMenu)
{
- if (item.HasSubMenu && !item.IsSubMenuOpen)
+ if (!item.IsSubMenuOpen)
{
Open(item, true);
- e.Handled = true;
}
+ else
+ {
+ item.MoveSelection(NavigationDirection.First, true);
+ }
+
+ e.Handled = true;
}
else
{
@@ -247,7 +252,8 @@ namespace Avalonia.Controls.Platform
// new menu.
if (item.IsSubMenuOpen &&
item.Parent is IMenu &&
- item.Parent.SelectedItem is object)
+ item.Parent.SelectedItem is object &&
+ item.Parent.SelectedItem != item)
{
item.Close();
Open(item.Parent.SelectedItem, true);
diff --git a/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs b/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs
index f938c8d437..2821fa8cf0 100644
--- a/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs
+++ b/src/Avalonia.Controls/Presenters/ItemsPresenterBase.cs
@@ -158,7 +158,7 @@ namespace Avalonia.Controls.Presenters
{
ItemsChanged(e);
- _childIndexChanged?.Invoke(this, new ChildIndexChangedEventArgs());
+ _childIndexChanged?.Invoke(this, ChildIndexChangedEventArgs.Empty);
}
}
diff --git a/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs b/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs
index 97fb4c3f43..a8bffcc842 100644
--- a/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs
+++ b/src/Avalonia.Controls/Presenters/ScrollContentPresenter.cs
@@ -389,7 +389,7 @@ namespace Avalonia.Controls.Presenters
{
var logicalUnits = delta.Y / logicalScrollItemSize.Y;
delta = delta.WithY(delta.Y - logicalUnits * logicalScrollItemSize.Y);
- dy = logicalUnits * scrollable!.ScrollSize.Height;
+ dy = logicalUnits;
}
else
dy = delta.Y;
@@ -407,7 +407,7 @@ namespace Avalonia.Controls.Presenters
{
var logicalUnits = delta.X / logicalScrollItemSize.X;
delta = delta.WithX(delta.X - logicalUnits * logicalScrollItemSize.X);
- dx = logicalUnits * scrollable!.ScrollSize.Width;
+ dx = logicalUnits;
}
else
dx = delta.X;
diff --git a/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj b/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
index f8a7cdc690..0270000d8c 100644
--- a/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
+++ b/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
@@ -16,14 +16,8 @@
-
-
-
-
-
-
diff --git a/src/Avalonia.DesignerSupport/Remote/HtmlTransport/webapp/package-lock.json b/src/Avalonia.DesignerSupport/Remote/HtmlTransport/webapp/package-lock.json
index 08ede477c3..403bb5a59a 100644
--- a/src/Avalonia.DesignerSupport/Remote/HtmlTransport/webapp/package-lock.json
+++ b/src/Avalonia.DesignerSupport/Remote/HtmlTransport/webapp/package-lock.json
@@ -377,9 +377,9 @@
"dev": true
},
"async": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
- "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"dev": true,
"requires": {
"lodash": "^4.17.14"
diff --git a/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj b/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
index bb908e07dc..2fb7c07b6f 100644
--- a/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
+++ b/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
@@ -16,14 +16,8 @@
-
-
-
-
-
-
diff --git a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
index 90221bb922..addc248d58 100644
--- a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
+++ b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
@@ -7,7 +7,7 @@ using Avalonia.Platform;
using Avalonia.Rendering;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Headless
{
diff --git a/src/Avalonia.Input/ApiCompatBaseline.txt b/src/Avalonia.Input/ApiCompatBaseline.txt
deleted file mode 100644
index 68b4d4754f..0000000000
--- a/src/Avalonia.Input/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Compat issues with assembly Avalonia.Input:
-MembersMustExist : Member 'public Avalonia.Platform.IPlatformHandle Avalonia.Input.Cursor.PlatformCursor.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.Gestures.DoubleTappedEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.Gestures.RightTappedEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.Gestures.TappedEvent' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.IFocusManager.RemoveFocusScope(Avalonia.Input.IFocusScope)' is present in the implementation but not in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.InputElement.TextInputOptionsQueryEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.InputElement.DoubleTappedEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.InputElement.TappedEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.add_DoubleTapped(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.add_Tapped(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.add_TextInputOptionsQuery(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_DoubleTapped(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_Tapped(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_TextInputOptionsQuery(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(System.Boolean)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(System.Boolean)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetClient(Avalonia.Input.TextInput.ITextInputMethodClient)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptions)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs)' does not exist in the implementation but it does exist in the contract.
-EnumValuesMustMatch : Enum value 'Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Email' is (System.Int32)5 in the implementation but (System.Int32)1 in the contract.
-EnumValuesMustMatch : Enum value 'Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Number' is (System.Int32)4 in the implementation but (System.Int32)3 in the contract.
-EnumValuesMustMatch : Enum value 'Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Password' is (System.Int32)8 in the implementation but (System.Int32)5 in the contract.
-MembersMustExist : Member 'public Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Phone' does not exist in the implementation but it does exist in the contract.
-EnumValuesMustMatch : Enum value 'Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Url' is (System.Int32)6 in the implementation but (System.Int32)4 in the contract.
-TypesMustExist : Type 'Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Platform.IStandardCursorFactory' does not exist in the implementation but it does exist in the contract.
-Total Issues: 27
diff --git a/src/Avalonia.Input/Avalonia.Input.csproj b/src/Avalonia.Input/Avalonia.Input.csproj
deleted file mode 100644
index 6e0321b3aa..0000000000
--- a/src/Avalonia.Input/Avalonia.Input.csproj
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- net6.0;netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Input/Properties/AssemblyInfo.cs b/src/Avalonia.Input/Properties/AssemblyInfo.cs
deleted file mode 100644
index a7126d6ba9..0000000000
--- a/src/Avalonia.Input/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using Avalonia.Metadata;
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input.TextInput")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input.GestureRecognizers")]
-
-[assembly: InternalsVisibleTo("Avalonia.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Controls.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
diff --git a/src/Avalonia.Interactivity/ApiCompatBaseline.txt b/src/Avalonia.Interactivity/ApiCompatBaseline.txt
deleted file mode 100644
index fcc74cf864..0000000000
--- a/src/Avalonia.Interactivity/ApiCompatBaseline.txt
+++ /dev/null
@@ -1 +0,0 @@
-Total Issues: 0
diff --git a/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj b/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
deleted file mode 100644
index fa115ed980..0000000000
--- a/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- net6.0;netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Avalonia.Layout/ApiCompatBaseline.txt b/src/Avalonia.Layout/ApiCompatBaseline.txt
deleted file mode 100644
index fcc74cf864..0000000000
--- a/src/Avalonia.Layout/ApiCompatBaseline.txt
+++ /dev/null
@@ -1 +0,0 @@
-Total Issues: 0
diff --git a/src/Avalonia.Layout/Avalonia.Layout.csproj b/src/Avalonia.Layout/Avalonia.Layout.csproj
deleted file mode 100644
index d94c3eb101..0000000000
--- a/src/Avalonia.Layout/Avalonia.Layout.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- net6.0;netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Layout/Properties/AssemblyInfo.cs b/src/Avalonia.Layout/Properties/AssemblyInfo.cs
deleted file mode 100644
index efcbf184b5..0000000000
--- a/src/Avalonia.Layout/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Runtime.CompilerServices;
-using Avalonia.Metadata;
-
-[assembly: InternalsVisibleTo("Avalonia.Layout.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Layout")]
-
diff --git a/src/Avalonia.OpenGL/Avalonia.OpenGL.csproj b/src/Avalonia.OpenGL/Avalonia.OpenGL.csproj
index 07cd295711..76924d060f 100644
--- a/src/Avalonia.OpenGL/Avalonia.OpenGL.csproj
+++ b/src/Avalonia.OpenGL/Avalonia.OpenGL.csproj
@@ -8,7 +8,6 @@
-
diff --git a/src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj b/src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj
index 5a8301a2e9..d746c6db7e 100644
--- a/src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj
+++ b/src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj
@@ -7,7 +7,7 @@
Avalonia.Remote.Protocol
-
+
\ No newline at end of file
diff --git a/src/Avalonia.Styling/ApiCompatBaseline.txt b/src/Avalonia.Styling/ApiCompatBaseline.txt
deleted file mode 100644
index 0eedc3e360..0000000000
--- a/src/Avalonia.Styling/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Compat issues with assembly Avalonia.Styling:
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Styling.IStyleInstance.IsActive' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Styling.IStyleInstance.IsActive.get()' is present in the implementation but not in the contract.
-Total Issues: 2
diff --git a/src/Avalonia.Styling/Avalonia.Styling.csproj b/src/Avalonia.Styling/Avalonia.Styling.csproj
deleted file mode 100644
index 260cfb0516..0000000000
--- a/src/Avalonia.Styling/Avalonia.Styling.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- net6.0;netstandard2.0
- Avalonia.Styling
- Avalonia
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Styling/Properties/AssemblyInfo.cs b/src/Avalonia.Styling/Properties/AssemblyInfo.cs
deleted file mode 100644
index ab034740ed..0000000000
--- a/src/Avalonia.Styling/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System.Runtime.CompilerServices;
-using Avalonia.Metadata;
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.LogicalTree")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Styling")]
-
-[assembly: InternalsVisibleTo("Avalonia.Styling.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-
diff --git a/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj b/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
index ef200b5532..40ed4a0f87 100644
--- a/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
+++ b/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
@@ -3,16 +3,10 @@
net6.0;netstandard2.0
-
-
-
-
-
-
-
+
diff --git a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj
index 885661536c..35603fe216 100644
--- a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj
+++ b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj
@@ -3,16 +3,10 @@
net6.0;netstandard2.0
-
-
-
-
-
-
-
+
diff --git a/src/Avalonia.Visuals/ApiCompatBaseline.txt b/src/Avalonia.Visuals/ApiCompatBaseline.txt
deleted file mode 100644
index 0e82ef7367..0000000000
--- a/src/Avalonia.Visuals/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,188 +0,0 @@
-Compat issues with assembly Avalonia.Visuals:
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.CompositePageTransition.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.CrossFade.Start(Avalonia.Visual, Avalonia.Visual)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Threading.Tasks.Task Avalonia.Animation.IPageTransition.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.IPageTransition.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Threading.Tasks.Task Avalonia.Animation.IPageTransition.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean, System.Threading.CancellationToken)' is present in the implementation but not in the contract.
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.PageSlide.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.DrawingContext.DrawText(Avalonia.Media.IBrush, Avalonia.Point, Avalonia.Media.FormattedText)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Boolean Avalonia.Media.FontManager.TryMatchCharacter(System.Int32, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight, Avalonia.Media.FontFamily, System.Globalization.CultureInfo, Avalonia.Media.Typeface)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText..ctor()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText..ctor(Avalonia.Platform.IPlatformRenderInterface)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText..ctor(System.String, Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextAlignment, Avalonia.Media.TextWrapping, Avalonia.Size)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Rect Avalonia.Media.FormattedText.Bounds.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Size Avalonia.Media.FormattedText.Constraint.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.Constraint.set(Avalonia.Size)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Double Avalonia.Media.FormattedText.FontSize.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.FontSize.set(System.Double)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Collections.Generic.IEnumerable Avalonia.Media.FormattedText.GetLines()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextHitTestResult Avalonia.Media.FormattedText.HitTestPoint(Avalonia.Point)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Rect Avalonia.Media.FormattedText.HitTestTextPosition(System.Int32)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Collections.Generic.IEnumerable Avalonia.Media.FormattedText.HitTestTextRange(System.Int32, System.Int32)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Platform.IFormattedTextImpl Avalonia.Media.FormattedText.PlatformImpl.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Collections.Generic.IReadOnlyList Avalonia.Media.FormattedText.Spans.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.Spans.set(System.Collections.Generic.IReadOnlyList)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.String Avalonia.Media.FormattedText.Text.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.Text.set(System.String)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextWrapping Avalonia.Media.FormattedText.TextWrapping.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.TextWrapping.set(Avalonia.Media.TextWrapping)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.Typeface Avalonia.Media.FormattedText.Typeface.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.Typeface.set(Avalonia.Media.Typeface)' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.FormattedTextLine' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.FormattedTextStyleSpan' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun..ctor()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun..ctor(Avalonia.Media.GlyphTypeface, System.Double, Avalonia.Utilities.ReadOnlySlice, Avalonia.Utilities.ReadOnlySlice, Avalonia.Utilities.ReadOnlySlice, Avalonia.Utilities.ReadOnlySlice, Avalonia.Utilities.ReadOnlySlice, System.Int32)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Utilities.ReadOnlySlice Avalonia.Media.GlyphRun.GlyphAdvances.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphAdvances.set(Avalonia.Utilities.ReadOnlySlice)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Utilities.ReadOnlySlice Avalonia.Media.GlyphRun.GlyphClusters.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphClusters.set(Avalonia.Utilities.ReadOnlySlice)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Utilities.ReadOnlySlice Avalonia.Media.GlyphRun.GlyphIndices.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphIndices.set(Avalonia.Utilities.ReadOnlySlice)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Utilities.ReadOnlySlice Avalonia.Media.GlyphRun.GlyphOffsets.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphOffsets.set(Avalonia.Utilities.ReadOnlySlice)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphTypeface.set(Avalonia.Media.GlyphTypeface)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Media.ITransform Avalonia.Media.IBrush.Transform' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Media.ITransform Avalonia.Media.IBrush.Transform.get()' is present in the implementation but not in the contract.
-CannotSealType : Type 'Avalonia.Media.Pen' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.Pen.AffectsRender(Avalonia.AvaloniaProperty[])' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.Pen.RaiseInvalidated(System.EventArgs)' does not exist in the implementation but it does exist in the contract.
-CannotSealType : Type 'Avalonia.Media.TextHitTestResult' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-TypeCannotChangeClassification : Type 'Avalonia.Media.TextHitTestResult' is a 'struct' in the implementation but is a 'class' in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextHitTestResult..ctor()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextHitTestResult.IsInside.set(System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextHitTestResult.IsTrailing.set(System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextHitTestResult.TextPosition.set(System.Int32)' does not exist in the implementation but it does exist in the contract.
-CannotMakeTypeAbstract : Type 'Avalonia.Media.TextTrimming' is abstract in the implementation but is not abstract in the contract.
-TypeCannotChangeClassification : Type 'Avalonia.Media.TextTrimming' is a 'class' in the implementation but is a 'struct' in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming.CharacterEllipsis' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming.None' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming.WordEllipsis' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Int32 System.Int32 Avalonia.Media.TextTrimming.value__' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Typeface..ctor(Avalonia.Media.FontFamily, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Typeface..ctor(System.String, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Immutable.ImmutableConicGradientBrush..ctor(System.Collections.Generic.IReadOnlyList, System.Double, Avalonia.Media.GradientSpreadMethod, System.Nullable, System.Double)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.Immutable.ImmutableGradientBrush..ctor(System.Collections.Generic.IReadOnlyList, System.Double, Avalonia.Media.GradientSpreadMethod)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Immutable.ImmutableLinearGradientBrush..ctor(System.Collections.Generic.IReadOnlyList, System.Double, Avalonia.Media.GradientSpreadMethod, System.Nullable, System.Nullable)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Immutable.ImmutableRadialGradientBrush..ctor(System.Collections.Generic.IReadOnlyList, System.Double, Avalonia.Media.GradientSpreadMethod, System.Nullable, System.Nullable, System.Double)' does not exist in the implementation but it does exist in the contract.
-TypeCannotChangeClassification : Type 'Avalonia.Media.Immutable.ImmutableSolidColorBrush' is a 'class' in the implementation but is a 'struct' in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Immutable.ImmutableSolidColorBrush..ctor(Avalonia.Media.Color, System.Double)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.Immutable.ImmutableTileBrush..ctor(Avalonia.Media.AlignmentX, Avalonia.Media.AlignmentY, Avalonia.RelativeRect, System.Double, Avalonia.RelativeRect, Avalonia.Media.Stretch, Avalonia.Media.TileMode, Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode)' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.DrawableTextRun.Baseline' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.DrawableTextRun.Baseline.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.DrawableTextRun.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public void Avalonia.Media.TextFormatting.DrawableTextRun.Draw(Avalonia.Media.DrawingContext, Avalonia.Point)' is abstract in the implementation but is missing in the contract.
-CannotSealType : Type 'Avalonia.Media.TextFormatting.GenericTextParagraphProperties' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextFormatting.TextRunProperties Avalonia.Media.TextFormatting.GenericTextParagraphProperties.DefaultTextRunProperties' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public System.Double Avalonia.Media.TextFormatting.GenericTextParagraphProperties.LineHeight' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextAlignment Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextAlignment' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextWrapping Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextWrapping' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextFormatting.TextRunProperties Avalonia.Media.TextFormatting.GenericTextParagraphProperties.DefaultTextRunProperties.get()' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public System.Double Avalonia.Media.TextFormatting.GenericTextParagraphProperties.LineHeight.get()' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextAlignment Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextAlignment.get()' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextWrapping Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextWrapping.get()' is non-virtual in the implementation but is virtual in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.GenericTextRunProperties..ctor(Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextDecorationCollection, Avalonia.Media.IBrush, Avalonia.Media.IBrush, System.Globalization.CultureInfo)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.ShapeableTextCharacters..ctor(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.TextFormatting.TextRunProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.ShapedTextCharacters..ctor(Avalonia.Media.GlyphRun, Avalonia.Media.TextFormatting.TextRunProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.ShapedTextCharacters.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.ShapedTextCharacters.SplitTextCharactersResult Avalonia.Media.TextFormatting.ShapedTextCharacters.Split(System.Int32)' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.TextFormatting.ShapedTextCharacters.SplitTextCharactersResult' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected System.Boolean Avalonia.Media.TextFormatting.TextCharacters.TryGetRunProperties(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.Typeface, Avalonia.Media.Typeface, System.Int32)' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Collections.Generic.List Avalonia.Media.TextFormatting.TextCollapsingProperties.Collapse(Avalonia.Media.TextFormatting.TextLine)' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextCollapsingStyle Avalonia.Media.TextFormatting.TextCollapsingProperties.Style.get()' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.TextFormatting.TextCollapsingStyle' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextEndOfLine..ctor()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLayout..ctor(System.String, Avalonia.Media.Typeface, System.Double, Avalonia.Media.IBrush, Avalonia.Media.TextAlignment, Avalonia.Media.TextWrapping, Avalonia.Media.TextTrimming, Avalonia.Media.TextDecorationCollection, System.Double, System.Double, System.Double, System.Int32, System.Collections.Generic.IReadOnlyList>)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLayout.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Size Avalonia.Media.TextFormatting.TextLayout.Size.get()' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Baseline' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Extent' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.FirstTextSourceIndex' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextLine.HasOverflowed' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Height' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.Length' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.NewLineLength' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangAfter' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangLeading' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangTrailing' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Start' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.TrailingWhitespaceLength' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Width' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.WidthIncludingTrailingWhitespace' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Baseline.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLine.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public void Avalonia.Media.TextFormatting.TextLine.Draw(Avalonia.Media.DrawingContext, Avalonia.Point)' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Extent.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.FirstTextSourceIndex.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Collections.Generic.IReadOnlyList Avalonia.Media.TextFormatting.TextLine.GetTextBounds(System.Int32, System.Int32)' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextLine.HasOverflowed.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Height.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.Length.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextLineMetrics Avalonia.Media.TextFormatting.TextLine.LineMetrics.get()' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.NewLineLength.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangAfter.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangLeading.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangTrailing.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Start.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextRange Avalonia.Media.TextFormatting.TextLine.TextRange.get()' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.TrailingWhitespaceLength.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Width.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.WidthIncludingTrailingWhitespace.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLineBreak..ctor(System.Collections.Generic.IReadOnlyList)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Collections.Generic.IReadOnlyList Avalonia.Media.TextFormatting.TextLineBreak.RemainingCharacters.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLineMetrics..ctor(Avalonia.Size, System.Double, Avalonia.Media.TextFormatting.TextRange, System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextLineMetrics Avalonia.Media.TextFormatting.TextLineMetrics.Create(System.Collections.Generic.IEnumerable, Avalonia.Media.TextFormatting.TextRange, System.Double, Avalonia.Media.TextFormatting.TextParagraphProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Size Avalonia.Media.TextFormatting.TextLineMetrics.Size.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextRange Avalonia.Media.TextFormatting.TextLineMetrics.TextRange.get()' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextParagraphProperties.FirstLineInParagraph' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public Avalonia.Media.FlowDirection Avalonia.Media.TextFormatting.TextParagraphProperties.FlowDirection' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextParagraphProperties.Indent' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextParagraphProperties.FirstLineInParagraph.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public Avalonia.Media.FlowDirection Avalonia.Media.TextFormatting.TextParagraphProperties.FlowDirection.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextParagraphProperties.Indent.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public Avalonia.Media.GlyphRun Avalonia.Media.TextFormatting.TextShaper.ShapeText(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.Typeface, System.Double, System.Globalization.CultureInfo)' does not exist in the implementation but it does exist in the contract.
-CannotSealType : Type 'Avalonia.Media.TextFormatting.TextTrailingCharacterEllipsis' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextTrailingCharacterEllipsis..ctor(System.Double, Avalonia.Media.TextFormatting.TextRunProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextCollapsingStyle Avalonia.Media.TextFormatting.TextTrailingCharacterEllipsis.Style.get()' does not exist in the implementation but it does exist in the contract.
-CannotSealType : Type 'Avalonia.Media.TextFormatting.TextTrailingWordEllipsis' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextTrailingWordEllipsis..ctor(System.Double, Avalonia.Media.TextFormatting.TextRunProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextCollapsingStyle Avalonia.Media.TextFormatting.TextTrailingWordEllipsis.Style.get()' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.TextFormatting.Unicode.BiDiClass' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.Unicode.BiDiClass Avalonia.Media.TextFormatting.Unicode.Codepoint.BiDiClass.get()' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Platform.ExportRenderingSubsystemAttribute' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.DrawEllipse(Avalonia.Media.IBrush, Avalonia.Media.IPen, Avalonia.Rect)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.DrawText(Avalonia.Media.IBrush, Avalonia.Point, Avalonia.Platform.IFormattedTextImpl)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public void Avalonia.Platform.IDrawingContextImpl.DrawText(Avalonia.Media.IBrush, Avalonia.Point, Avalonia.Platform.IFormattedTextImpl)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.PopBitmapBlendMode()' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.PushBitmapBlendMode(Avalonia.Visuals.Media.Imaging.BitmapBlendingMode)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight, Avalonia.Media.FontFamily, System.Globalization.CultureInfo, Avalonia.Media.Typeface)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public System.Boolean Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight, Avalonia.Media.FontFamily, System.Globalization.CultureInfo, Avalonia.Media.Typeface)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight, Avalonia.Media.FontStretch, Avalonia.Media.FontFamily, System.Globalization.CultureInfo, Avalonia.Media.Typeface)' is present in the implementation but not in the contract.
-TypesMustExist : Type 'Avalonia.Platform.IFormattedTextImpl' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Double Avalonia.Platform.IGeometryImpl.ContourLength' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Double Avalonia.Platform.IGeometryImpl.ContourLength.get()' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetPointAndTangentAtDistance(System.Double, Avalonia.Point, Avalonia.Point)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetPointAtDistance(System.Double, Avalonia.Point)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetSegment(System.Double, System.Double, System.Boolean, Avalonia.Platform.IGeometryImpl)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGeometryImpl Avalonia.Platform.IPlatformRenderInterface.CreateCombinedGeometry(Avalonia.Media.GeometryCombineMode, Avalonia.Media.Geometry, Avalonia.Media.Geometry)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IFormattedTextImpl Avalonia.Platform.IPlatformRenderInterface.CreateFormattedText(System.String, Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextAlignment, Avalonia.Media.TextWrapping, Avalonia.Size, System.Collections.Generic.IReadOnlyList)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public Avalonia.Platform.IFormattedTextImpl Avalonia.Platform.IPlatformRenderInterface.CreateFormattedText(System.String, Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextAlignment, Avalonia.Media.TextWrapping, Avalonia.Size, System.Collections.Generic.IReadOnlyList)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGeometryImpl Avalonia.Platform.IPlatformRenderInterface.CreateGeometryGroup(Avalonia.Media.FillRule, System.Collections.Generic.IReadOnlyList)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun, System.Double)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun, System.Double)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IWriteableBitmapImpl Avalonia.Platform.IPlatformRenderInterface.LoadWriteableBitmap(System.IO.Stream)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IWriteableBitmapImpl Avalonia.Platform.IPlatformRenderInterface.LoadWriteableBitmap(System.String)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IWriteableBitmapImpl Avalonia.Platform.IPlatformRenderInterface.LoadWriteableBitmapToHeight(System.IO.Stream, System.Int32, Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IWriteableBitmapImpl Avalonia.Platform.IPlatformRenderInterface.LoadWriteableBitmapToWidth(System.IO.Stream, System.Int32, Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Size Avalonia.Platform.IPlatformSettings.TouchDoubleClickSize' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.TimeSpan Avalonia.Platform.IPlatformSettings.TouchDoubleClickTime' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Size Avalonia.Platform.IPlatformSettings.TouchDoubleClickSize.get()' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.TimeSpan Avalonia.Platform.IPlatformSettings.TouchDoubleClickTime.get()' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Media.TextFormatting.ShapedBuffer Avalonia.Platform.ITextShaperImpl.ShapeText(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.TextFormatting.TextShaperOptions)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Media.GlyphRun Avalonia.Platform.ITextShaperImpl.ShapeText(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.Typeface, System.Double, System.Globalization.CultureInfo)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public Avalonia.Media.GlyphRun Avalonia.Platform.ITextShaperImpl.ShapeText(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.Typeface, System.Double, System.Globalization.CultureInfo)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Rendering.RendererBase.RenderFps(Avalonia.Platform.IDrawingContextImpl, Avalonia.Rect, System.Nullable)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.VisualTree.IVisual.HasMirrorTransform' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.VisualTree.IVisual.HasMirrorTransform.get()' is present in the implementation but not in the contract.
-MembersMustExist : Member 'public void Avalonia.Utilities.ReadOnlySlice..ctor(System.ReadOnlyMemory, System.Int32, System.Int32)' does not exist in the implementation but it does exist in the contract.
-Total Issues: 186
diff --git a/src/Avalonia.Visuals/Avalonia.Visuals.csproj b/src/Avalonia.Visuals/Avalonia.Visuals.csproj
deleted file mode 100644
index 7e9947812b..0000000000
--- a/src/Avalonia.Visuals/Avalonia.Visuals.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- net6.0;netstandard2.0
- Avalonia
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Visuals/Properties/AssemblyInfo.cs b/src/Avalonia.Visuals/Properties/AssemblyInfo.cs
deleted file mode 100644
index ebff097199..0000000000
--- a/src/Avalonia.Visuals/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Runtime.CompilerServices;
-using Avalonia.Metadata;
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media.Imaging")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media.Transformation")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia")]
-
-[assembly: InternalsVisibleTo("Avalonia.Visuals.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Direct2D1.RenderTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Skia.RenderTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Skia.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Web.Blazor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-
diff --git a/src/Avalonia.X11/X11IconLoader.cs b/src/Avalonia.X11/X11IconLoader.cs
index 6632573ba2..36939f4103 100644
--- a/src/Avalonia.X11/X11IconLoader.cs
+++ b/src/Avalonia.X11/X11IconLoader.cs
@@ -2,12 +2,9 @@ using System;
using System.IO;
using System.Runtime.InteropServices;
using Avalonia.Controls.Platform.Surfaces;
-using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
-using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
-using static Avalonia.X11.XLib;
+
namespace Avalonia.X11
{
class X11IconLoader : IPlatformIconLoader
diff --git a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
index 6624392258..622ec416e8 100644
--- a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
+++ b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
@@ -56,14 +56,8 @@
-
-
-
-
-
-
diff --git a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
index 119f57973c..f7f1a111ba 100644
--- a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
+++ b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
@@ -11,8 +11,6 @@
-
-
diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs
index 642808eacb..2548b9f5aa 100644
--- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs
+++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs
@@ -9,7 +9,7 @@ using Avalonia.Rendering;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Rendering.Utilities;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Skia/Avalonia.Skia/FontManagerImpl.cs b/src/Skia/Avalonia.Skia/FontManagerImpl.cs
index 075a2cc746..125dd0e455 100644
--- a/src/Skia/Avalonia.Skia/FontManagerImpl.cs
+++ b/src/Skia/Avalonia.Skia/FontManagerImpl.cs
@@ -122,9 +122,7 @@ namespace Avalonia.Skia
skTypeface = _skFontManager.MatchFamily(familyName, fontStyle);
- if (skTypeface is null
- || (!skTypeface.FamilyName.Equals(familyName, StringComparison.Ordinal)
- && defaultName.Equals(skTypeface.FamilyName, StringComparison.Ordinal)))
+ if (skTypeface is null || defaultName.Equals(skTypeface.FamilyName, StringComparison.Ordinal))
{
continue;
}
diff --git a/src/Skia/Avalonia.Skia/ImmutableBitmap.cs b/src/Skia/Avalonia.Skia/ImmutableBitmap.cs
index 3010f49420..5628ae177c 100644
--- a/src/Skia/Avalonia.Skia/ImmutableBitmap.cs
+++ b/src/Skia/Avalonia.Skia/ImmutableBitmap.cs
@@ -5,7 +5,7 @@ using System.Security.Cryptography;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using Avalonia.Skia.Helpers;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
index 1c92c7d193..d3c3585cd0 100644
--- a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
+++ b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
@@ -10,7 +10,7 @@ using Avalonia.Media;
using Avalonia.OpenGL;
using Avalonia.OpenGL.Imaging;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Skia/Avalonia.Skia/SKTypefaceCollection.cs b/src/Skia/Avalonia.Skia/SKTypefaceCollection.cs
index f66df9e6e9..1f3f20730f 100644
--- a/src/Skia/Avalonia.Skia/SKTypefaceCollection.cs
+++ b/src/Skia/Avalonia.Skia/SKTypefaceCollection.cs
@@ -59,15 +59,30 @@ namespace Avalonia.Skia
return typeface;
}
- //Nothing was found so we try some regular cases.
+ if (TryFindStretchFallback(key, out typeface))
+ {
+ return typeface;
+ }
+
+ //Nothing was found so we try some regular typeface.
if (_typefaces.TryGetValue(new Typeface(key.FontFamily), out typeface))
{
return typeface;
}
- return _typefaces.TryGetValue(new Typeface(key.FontFamily, FontStyle.Italic), out typeface) ?
- typeface :
- null;
+ SKTypeface skTypeface = null;
+
+ foreach(var pair in _typefaces)
+ {
+ skTypeface = pair.Value;
+
+ if (skTypeface.FamilyName.Contains(key.FontFamily.Name))
+ {
+ return skTypeface;
+ }
+ }
+
+ return skTypeface;
}
private bool TryFindStretchFallback(Typeface key, out SKTypeface typeface)
diff --git a/src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs b/src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs
index 75b4231640..166f2e8f98 100644
--- a/src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs
+++ b/src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs
@@ -1,7 +1,7 @@
using System;
using Avalonia.Media;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs b/src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs
index 63a1e8f869..506edf0627 100644
--- a/src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs
+++ b/src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs
@@ -4,7 +4,7 @@ using System.Threading;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using Avalonia.Skia.Helpers;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
index c32c58605f..d9e992bb80 100644
--- a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
+++ b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
@@ -9,7 +9,7 @@ using Avalonia.Direct2D1.Media.Imaging;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SharpDX.DirectWrite;
using GlyphRun = Avalonia.Media.GlyphRun;
using TextAlignment = Avalonia.Media.TextAlignment;
diff --git a/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs
index b62a6fa5a6..a259d8fab9 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs
@@ -5,11 +5,11 @@ using Avalonia.Platform;
using Avalonia.Rendering;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SharpDX;
using SharpDX.Direct2D1;
using SharpDX.Mathematics.Interop;
-using BitmapInterpolationMode = Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode;
+using BitmapInterpolationMode = Avalonia.Media.Imaging.BitmapInterpolationMode;
namespace Avalonia.Direct2D1.Media
{
diff --git a/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs
index 09b900b0c2..296cefad4e 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs
@@ -9,7 +9,7 @@ namespace Avalonia.Direct2D1.Media
{
private readonly OptionalDispose _bitmap;
- private readonly Visuals.Media.Imaging.BitmapInterpolationMode _bitmapInterpolationMode;
+ private readonly Avalonia.Media.Imaging.BitmapInterpolationMode _bitmapInterpolationMode;
public ImageBrushImpl(
ITileBrush brush,
diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
index cac35aa4ae..df07f7f39c 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
@@ -15,21 +15,21 @@ namespace Avalonia.Direct2D1.Media
{
private readonly BitmapDecoder _decoder;
- private static BitmapInterpolationMode ConvertInterpolationMode(Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode interpolationMode)
+ private static BitmapInterpolationMode ConvertInterpolationMode(Avalonia.Media.Imaging.BitmapInterpolationMode interpolationMode)
{
switch (interpolationMode)
{
- case Visuals.Media.Imaging.BitmapInterpolationMode.Default:
+ case Avalonia.Media.Imaging.BitmapInterpolationMode.Default:
return BitmapInterpolationMode.Fant;
- case Visuals.Media.Imaging.BitmapInterpolationMode.LowQuality:
+ case Avalonia.Media.Imaging.BitmapInterpolationMode.LowQuality:
return BitmapInterpolationMode.NearestNeighbor;
- case Visuals.Media.Imaging.BitmapInterpolationMode.MediumQuality:
+ case Avalonia.Media.Imaging.BitmapInterpolationMode.MediumQuality:
return BitmapInterpolationMode.Fant;
default:
- case Visuals.Media.Imaging.BitmapInterpolationMode.HighQuality:
+ case Avalonia.Media.Imaging.BitmapInterpolationMode.HighQuality:
return BitmapInterpolationMode.HighQualityCubic;
}
@@ -118,7 +118,7 @@ namespace Avalonia.Direct2D1.Media
}
}
- public WicBitmapImpl(Stream stream, int decodeSize, bool horizontal, Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode interpolationMode)
+ public WicBitmapImpl(Stream stream, int decodeSize, bool horizontal, Avalonia.Media.Imaging.BitmapInterpolationMode interpolationMode)
{
_decoder = new BitmapDecoder(Direct2D1Platform.ImagingFactory, stream, DecodeOptions.CacheOnLoad);
diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
index fef6a9aa82..885be132a4 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
@@ -9,7 +9,7 @@ namespace Avalonia.Direct2D1.Media.Imaging
class WriteableWicBitmapImpl : WicBitmapImpl, IWriteableBitmapImpl
{
public WriteableWicBitmapImpl(Stream stream, int decodeSize, bool horizontal,
- Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode interpolationMode)
+ Avalonia.Media.Imaging.BitmapInterpolationMode interpolationMode)
: base(stream, decodeSize, horizontal, interpolationMode)
{
}
diff --git a/src/Windows/Avalonia.Win32/Win32GlManager.cs b/src/Windows/Avalonia.Win32/Win32GlManager.cs
index 0376a41f8c..2a3f4a3384 100644
--- a/src/Windows/Avalonia.Win32/Win32GlManager.cs
+++ b/src/Windows/Avalonia.Win32/Win32GlManager.cs
@@ -24,9 +24,23 @@ namespace Avalonia.Win32
{
var egl = EglPlatformOpenGlInterface.TryCreate(() => new AngleWin32EglDisplay());
- if (egl != null && opts.UseWindowsUIComposition)
+ if (egl != null)
{
- WinUICompositorConnection.TryCreateAndRegister(egl, opts.CompositionBackdropCornerRadius);
+ if (opts.EglRendererBlacklist != null)
+ {
+ foreach (var item in opts.EglRendererBlacklist)
+ {
+ if (egl.PrimaryEglContext.GlInterface.Renderer.Contains(item))
+ {
+ return null;
+ }
+ }
+ }
+
+ if (opts.UseWindowsUIComposition)
+ {
+ WinUICompositorConnection.TryCreateAndRegister(egl, opts.CompositionBackdropCornerRadius);
+ }
}
return egl;
diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs
index 5cfbab40e4..dc5e5324c4 100644
--- a/src/Windows/Avalonia.Win32/Win32Platform.cs
+++ b/src/Windows/Avalonia.Win32/Win32Platform.cs
@@ -56,6 +56,11 @@ namespace Avalonia
/// GPU rendering will not be enabled if this is set to false.
///
public bool? AllowEglInitialization { get; set; }
+
+ public IList EglRendererBlacklist { get; set; } = new List
+ {
+ "Microsoft Basic Render"
+ };
///
/// Enables multitouch support. The default value is true.
diff --git a/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj b/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
index 4e134b7d4e..ea3a79941d 100644
--- a/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
+++ b/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
@@ -1,8 +1,6 @@
-
-
+
- net6.0-ios
- $(TargetFrameworks);xamarin.ios10
+ net6.0-ios10.0true
@@ -10,15 +8,6 @@
-
-
-
-
-
- <_BuiltProjectOutputGroupOutputIntermediate Remove="$(OutDir)$(_DeploymentTargetApplicationManifestFileName)" />
-
-
-
-
+
diff --git a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
index a2d27fd579..1cf68c1605 100644
--- a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
+++ b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
@@ -7,15 +7,9 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Animation.UnitTests/Avalonia.Animation.UnitTests.csproj b/tests/Avalonia.Animation.UnitTests/Avalonia.Animation.UnitTests.csproj
deleted file mode 100644
index e07ece5460..0000000000
--- a/tests/Avalonia.Animation.UnitTests/Avalonia.Animation.UnitTests.csproj
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
- net6.0
- Library
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Animation.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Animation.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index b57cd55868..0000000000
--- a/tests/Avalonia.Animation.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Animation.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.Animation.UnitTests/AnimatableTests.cs b/tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs
similarity index 99%
rename from tests/Avalonia.Animation.UnitTests/AnimatableTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs
index 1d5296bebd..f9ff8caab1 100644
--- a/tests/Avalonia.Animation.UnitTests/AnimatableTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs
@@ -1,5 +1,5 @@
using System;
-using Avalonia.Animation.Animators;
+using Avalonia.Animation;
using Avalonia.Controls;
using Avalonia.Controls.Shapes;
using Avalonia.Data;
@@ -10,7 +10,7 @@ using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
public class AnimatableTests
{
@@ -136,7 +136,7 @@ namespace Avalonia.Animation.UnitTests
KeyTime = TimeSpan.FromSeconds(3),
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(3),
Children =
diff --git a/tests/Avalonia.Animation.UnitTests/AnimationIterationTests.cs b/tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
similarity index 97%
rename from tests/Avalonia.Animation.UnitTests/AnimationIterationTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
index 58bd7a42c3..ca24b95e65 100644
--- a/tests/Avalonia.Animation.UnitTests/AnimationIterationTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
@@ -12,8 +12,10 @@ using Avalonia.Animation.Easings;
using System.Threading;
using System.Reactive.Linq;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
+ using Animation = Avalonia.Animation.Animation;
+
public class AnimationIterationTests
{
[Fact]
@@ -37,7 +39,7 @@ namespace Avalonia.Animation.UnitTests
KeyTime = TimeSpan.FromSeconds(0)
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(1),
Children =
@@ -86,7 +88,7 @@ namespace Avalonia.Animation.UnitTests
Cue = new Cue(0d)
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(3),
Delay = TimeSpan.FromSeconds(3),
@@ -147,7 +149,7 @@ namespace Avalonia.Animation.UnitTests
Cue = new Cue(1.0d)
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(0.05d),
Delay = TimeSpan.FromSeconds(0.05d),
diff --git a/tests/Avalonia.Animation.UnitTests/BrushTransitionTests.cs b/tests/Avalonia.Base.UnitTests/Animation/BrushTransitionTests.cs
similarity index 93%
rename from tests/Avalonia.Animation.UnitTests/BrushTransitionTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/BrushTransitionTests.cs
index 1986bd2ee3..acc32fd6a2 100644
--- a/tests/Avalonia.Animation.UnitTests/BrushTransitionTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/BrushTransitionTests.cs
@@ -1,13 +1,10 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using Avalonia.Animation;
using Avalonia.Controls;
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
public class BrushTransitionTests
{
diff --git a/tests/Avalonia.Animation.UnitTests/KeySplineTests.cs b/tests/Avalonia.Base.UnitTests/Animation/KeySplineTests.cs
similarity index 97%
rename from tests/Avalonia.Animation.UnitTests/KeySplineTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/KeySplineTests.cs
index fa2ed61e65..3cd12d92ec 100644
--- a/tests/Avalonia.Animation.UnitTests/KeySplineTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/KeySplineTests.cs
@@ -1,11 +1,12 @@
using System;
+using Avalonia.Animation;
using Avalonia.Animation.Easings;
using Avalonia.Controls.Shapes;
using Avalonia.Media;
using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
public class KeySplineTests
{
@@ -123,7 +124,7 @@ namespace Avalonia.Animation.UnitTests
0.499999999999999999)
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(5),
Children =
@@ -190,7 +191,7 @@ namespace Avalonia.Animation.UnitTests
KeyTime = TimeSpan.FromSeconds(5),
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(5),
Children =
diff --git a/tests/Avalonia.Animation.UnitTests/TestClock.cs b/tests/Avalonia.Base.UnitTests/Animation/TestClock.cs
similarity index 90%
rename from tests/Avalonia.Animation.UnitTests/TestClock.cs
rename to tests/Avalonia.Base.UnitTests/Animation/TestClock.cs
index 4812880c03..6604bd29a4 100644
--- a/tests/Avalonia.Animation.UnitTests/TestClock.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/TestClock.cs
@@ -1,7 +1,7 @@
using System;
-using System.Collections.Generic;
+using Avalonia.Animation;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
internal class TestClock : IClock, IDisposable
{
@@ -33,4 +33,4 @@ namespace Avalonia.Animation.UnitTests
return this;
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Avalonia.Animation.UnitTests/TransitionsTests.cs b/tests/Avalonia.Base.UnitTests/Animation/TransitionsTests.cs
similarity index 98%
rename from tests/Avalonia.Animation.UnitTests/TransitionsTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/TransitionsTests.cs
index 640013dedd..65cf90b642 100644
--- a/tests/Avalonia.Animation.UnitTests/TransitionsTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/TransitionsTests.cs
@@ -1,9 +1,9 @@
using System;
+using Avalonia.Animation;
using Avalonia.Controls;
-using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
public class TransitionsTests
{
diff --git a/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj b/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj
index 9628d16a6c..602e5e4496 100644
--- a/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj
+++ b/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj
@@ -12,6 +12,11 @@
+
+
+
+
+
diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaPropertyRegistryTests.cs b/tests/Avalonia.Base.UnitTests/AvaloniaPropertyRegistryTests.cs
index 7f4db23268..0d62f20f7e 100644
--- a/tests/Avalonia.Base.UnitTests/AvaloniaPropertyRegistryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/AvaloniaPropertyRegistryTests.cs
@@ -1,3 +1,4 @@
+using System;
using System.Linq;
using System.Reactive.Linq;
using Xunit;
@@ -56,7 +57,7 @@ namespace Avalonia.Base.UnitTests
.Select(x => x.Name)
.ToArray();
- Assert.Equal(new[] { "Attached" }, names);
+ Assert.Contains("Attached", names);
}
[Fact]
@@ -66,7 +67,7 @@ namespace Avalonia.Base.UnitTests
.Select(x => x.Name)
.ToArray();
- Assert.Equal(new[] { "Attached" }, names);
+ Assert.Contains("Attached", names);
}
[Fact]
diff --git a/tests/Avalonia.Visuals.UnitTests/CornerRadiusTests.cs b/tests/Avalonia.Base.UnitTests/CornerRadiusTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/CornerRadiusTests.cs
rename to tests/Avalonia.Base.UnitTests/CornerRadiusTests.cs
index 21633b1cec..edfbd5acd9 100644
--- a/tests/Avalonia.Visuals.UnitTests/CornerRadiusTests.cs
+++ b/tests/Avalonia.Base.UnitTests/CornerRadiusTests.cs
@@ -1,7 +1,6 @@
-using System.Globalization;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class CornerRadiusTests
{
@@ -37,4 +36,4 @@ namespace Avalonia.Visuals.UnitTests
Assert.Equal(new CornerRadius(1.1, 2.2, 3.3, 4.4), result);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs b/tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs
index 1d9524a191..574ecd2ca4 100644
--- a/tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs
@@ -7,7 +7,7 @@ using Avalonia.Data.Core.Plugins;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Markup.UnitTests.Data.Plugins
+namespace Avalonia.Base.UnitTests.Data.Core.Plugins
{
public class DataAnnotationsValidationPluginTests : IClassFixture
{
diff --git a/tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs b/tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs
index f522acf9ce..7cf84d767a 100644
--- a/tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs
@@ -7,7 +7,7 @@ using Avalonia.Data.Converters;
using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Base.UnitTests.Data.Converters
+namespace Avalonia.Base.UnitTests.Data
{
public class DefaultValueConverterTests
{
diff --git a/tests/Avalonia.Input.UnitTests/GesturesTests.cs b/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs
similarity index 98%
rename from tests/Avalonia.Input.UnitTests/GesturesTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs
index b2687c2555..57ec00cb58 100644
--- a/tests/Avalonia.Input.UnitTests/GesturesTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class GesturesTests
{
diff --git a/tests/Avalonia.Input.UnitTests/InputElement_Enabled.cs b/tests/Avalonia.Base.UnitTests/Input/InputElement_Enabled.cs
similarity index 98%
rename from tests/Avalonia.Input.UnitTests/InputElement_Enabled.cs
rename to tests/Avalonia.Base.UnitTests/Input/InputElement_Enabled.cs
index 11d68d307e..1c001d4b3a 100644
--- a/tests/Avalonia.Input.UnitTests/InputElement_Enabled.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/InputElement_Enabled.cs
@@ -1,7 +1,7 @@
using Avalonia.Controls;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class InputElement_Enabled
{
diff --git a/tests/Avalonia.Input.UnitTests/InputElement_Focus.cs b/tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs
similarity index 99%
rename from tests/Avalonia.Input.UnitTests/InputElement_Focus.cs
rename to tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs
index 602455ba36..2d8ee62ef2 100644
--- a/tests/Avalonia.Input.UnitTests/InputElement_Focus.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs
@@ -1,8 +1,9 @@
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class InputElement_Focus
{
diff --git a/tests/Avalonia.Input.UnitTests/KeyGestureTests.cs b/tests/Avalonia.Base.UnitTests/Input/KeyGestureTests.cs
similarity index 97%
rename from tests/Avalonia.Input.UnitTests/KeyGestureTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/KeyGestureTests.cs
index 90f9a0a985..33cd94ec98 100644
--- a/tests/Avalonia.Input.UnitTests/KeyGestureTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/KeyGestureTests.cs
@@ -1,7 +1,8 @@
using System.Collections.Generic;
+using Avalonia.Input;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class KeyGestureTests
{
diff --git a/tests/Avalonia.Input.UnitTests/KeyboardDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/KeyboardDeviceTests.cs
similarity index 98%
rename from tests/Avalonia.Input.UnitTests/KeyboardDeviceTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/KeyboardDeviceTests.cs
index 32ba14d337..07bfa0d2e6 100644
--- a/tests/Avalonia.Input.UnitTests/KeyboardDeviceTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/KeyboardDeviceTests.cs
@@ -1,12 +1,13 @@
using System;
using System.Windows.Input;
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.Input.Raw;
using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class KeyboardDeviceTests
{
diff --git a/tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Custom.cs b/tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Custom.cs
similarity index 99%
rename from tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Custom.cs
rename to tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Custom.cs
index f9c85ee4ca..830f7223ec 100644
--- a/tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Custom.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Custom.cs
@@ -1,7 +1,8 @@
using Avalonia.Controls;
+using Avalonia.Input;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class KeyboardNavigationTests_Custom
{
diff --git a/tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Tab.cs b/tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Tab.cs
similarity index 99%
rename from tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Tab.cs
rename to tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Tab.cs
index 9a117bb71d..7fd8cb345d 100644
--- a/tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Tab.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Tab.cs
@@ -1,8 +1,9 @@
using System.Collections.Generic;
using Avalonia.Controls;
+using Avalonia.Input;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class KeyboardNavigationTests_Tab
{
diff --git a/tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs
similarity index 98%
rename from tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs
index 223f458f25..758d501cc1 100644
--- a/tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs
@@ -1,16 +1,16 @@
-using Avalonia.Controls;
+using System;
+using System.Collections.Generic;
+using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.Input.Raw;
-using Avalonia.Interactivity;
using Avalonia.Media;
using Avalonia.Rendering;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Moq;
-using System;
-using System.Collections.Generic;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class MouseDeviceTests
{
diff --git a/tests/Avalonia.Input.UnitTests/PointerTests.cs b/tests/Avalonia.Base.UnitTests/Input/PointerTests.cs
similarity index 95%
rename from tests/Avalonia.Input.UnitTests/PointerTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/PointerTests.cs
index e639726dbd..e25ef0a9b8 100644
--- a/tests/Avalonia.Input.UnitTests/PointerTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/PointerTests.cs
@@ -1,11 +1,12 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class PointerTests
{
diff --git a/tests/Avalonia.Input.UnitTests/TouchDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs
similarity index 100%
rename from tests/Avalonia.Input.UnitTests/TouchDeviceTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs
diff --git a/tests/Avalonia.Interactivity.UnitTests/InteractiveTests.cs b/tests/Avalonia.Base.UnitTests/Interactivity/InteractiveTests.cs
similarity index 99%
rename from tests/Avalonia.Interactivity.UnitTests/InteractiveTests.cs
rename to tests/Avalonia.Base.UnitTests/Interactivity/InteractiveTests.cs
index b997ffbbd9..1ca7e9bd49 100644
--- a/tests/Avalonia.Interactivity.UnitTests/InteractiveTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Interactivity/InteractiveTests.cs
@@ -1,10 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Avalonia.Interactivity;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Interactivity.UnitTests
+namespace Avalonia.Base.UnitTests.Interactivity
{
public class InteractiveTests
{
diff --git a/tests/Avalonia.Interactivity.UnitTests/RoutedEventRegistryTests.cs b/tests/Avalonia.Base.UnitTests/Interactivity/RoutedEventRegistryTests.cs
similarity index 95%
rename from tests/Avalonia.Interactivity.UnitTests/RoutedEventRegistryTests.cs
rename to tests/Avalonia.Base.UnitTests/Interactivity/RoutedEventRegistryTests.cs
index 8276039d09..05b2187df4 100644
--- a/tests/Avalonia.Interactivity.UnitTests/RoutedEventRegistryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Interactivity/RoutedEventRegistryTests.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using Avalonia.Controls;
using Avalonia.Input;
+using Avalonia.Interactivity;
using Xunit;
-namespace Avalonia.Interactivity.UnitTests
+namespace Avalonia.Base.UnitTests.Interactivity
{
public class RoutedEventRegistryTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/ArrangeTests.cs b/tests/Avalonia.Base.UnitTests/Layout/ArrangeTests.cs
similarity index 98%
rename from tests/Avalonia.Layout.UnitTests/ArrangeTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/ArrangeTests.cs
index db0ead1b00..b771cf2d24 100644
--- a/tests/Avalonia.Layout.UnitTests/ArrangeTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/ArrangeTests.cs
@@ -1,7 +1,8 @@
using Avalonia.Controls;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class ArrangeTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/FullLayoutTests.cs b/tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs
similarity index 98%
rename from tests/Avalonia.Layout.UnitTests/FullLayoutTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs
index dcc29a9716..1d6eead6dd 100644
--- a/tests/Avalonia.Layout.UnitTests/FullLayoutTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs
@@ -3,12 +3,12 @@ using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
-using Avalonia.Styling;
+using Avalonia.Layout;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class FullLayoutTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutHelperTests.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutHelperTests.cs
similarity index 92%
rename from tests/Avalonia.Layout.UnitTests/LayoutHelperTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutHelperTests.cs
index f9187edc42..3df31939d1 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutHelperTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutHelperTests.cs
@@ -1,7 +1,8 @@
using System;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutHelperTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutManagerTests.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/LayoutManagerTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs
index e429adce85..f0e8e1cd11 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutManagerTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Controls;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutManagerTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutQueueTests.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutQueueTests.cs
similarity index 98%
rename from tests/Avalonia.Layout.UnitTests/LayoutQueueTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutQueueTests.cs
index f047677a8a..fc3b5c3d43 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutQueueTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutQueueTests.cs
@@ -1,8 +1,9 @@
using System.Collections.Generic;
using System.Linq;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutQueueTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutTestControl.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutTestControl.cs
similarity index 93%
rename from tests/Avalonia.Layout.UnitTests/LayoutTestControl.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutTestControl.cs
index f7f072eb1e..ca593cc665 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutTestControl.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutTestControl.cs
@@ -1,7 +1,8 @@
using System;
using Avalonia.Controls;
+using Avalonia.Layout;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
internal class LayoutTestControl : Decorator
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutTestRoot.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutTestRoot.cs
similarity index 94%
rename from tests/Avalonia.Layout.UnitTests/LayoutTestRoot.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutTestRoot.cs
index a94459df96..19ab54a339 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutTestRoot.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutTestRoot.cs
@@ -1,7 +1,8 @@
using System;
+using Avalonia.Layout;
using Avalonia.UnitTests;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
internal class LayoutTestRoot : TestRoot, ILayoutable
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutableTests.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutableTests.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/LayoutableTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutableTests.cs
index a8aa0bbf0e..87fa8cf1f3 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutableTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutableTests.cs
@@ -1,10 +1,11 @@
using System;
using Avalonia.Controls;
+using Avalonia.Layout;
using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutableTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutableTests_EffectiveViewportChanged.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutableTests_EffectiveViewportChanged.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/LayoutableTests_EffectiveViewportChanged.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutableTests_EffectiveViewportChanged.cs
index 178855d71c..7c1a525002 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutableTests_EffectiveViewportChanged.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutableTests_EffectiveViewportChanged.cs
@@ -4,11 +4,12 @@ using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
+using Avalonia.Layout;
using Avalonia.Media;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutableTests_EffectiveViewportChanged
{
diff --git a/tests/Avalonia.Layout.UnitTests/MeasureTests.cs b/tests/Avalonia.Base.UnitTests/Layout/MeasureTests.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/MeasureTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/MeasureTests.cs
index 140ebede15..32c3e89b74 100644
--- a/tests/Avalonia.Layout.UnitTests/MeasureTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/MeasureTests.cs
@@ -1,7 +1,7 @@
using Avalonia.Controls;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class MeasureTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/NonVirtualizingStackLayoutTests.cs b/tests/Avalonia.Base.UnitTests/Layout/NonVirtualizingStackLayoutTests.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/NonVirtualizingStackLayoutTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/NonVirtualizingStackLayoutTests.cs
index a7b378c322..78cf63ed3f 100644
--- a/tests/Avalonia.Layout.UnitTests/NonVirtualizingStackLayoutTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/NonVirtualizingStackLayoutTests.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Controls;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class NonVirtualizingStackLayoutTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/BoxShadowTests.cs b/tests/Avalonia.Base.UnitTests/Media/BoxShadowTests.cs
similarity index 96%
rename from tests/Avalonia.Visuals.UnitTests/Media/BoxShadowTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/BoxShadowTests.cs
index e3b703baf2..5f1860d177 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/BoxShadowTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/BoxShadowTests.cs
@@ -1,7 +1,7 @@
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class BoxShadowTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs b/tests/Avalonia.Base.UnitTests/Media/BrushTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/BrushTests.cs
index 1a2f7732dd..6edce79de1 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/BrushTests.cs
@@ -2,7 +2,7 @@ using System;
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class BrushTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/ColorTests.cs b/tests/Avalonia.Base.UnitTests/Media/ColorTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/ColorTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/ColorTests.cs
index 352e58abd1..1392635b32 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/ColorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/ColorTests.cs
@@ -2,7 +2,7 @@ using System;
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class ColorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs b/tests/Avalonia.Base.UnitTests/Media/FontFamilyTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/FontFamilyTests.cs
index 8ed5e408fa..1f8ae9bd8b 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/FontFamilyTests.cs
@@ -4,7 +4,7 @@ using Avalonia.Media;
using Avalonia.Media.Fonts;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class FontFamilyTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/FontManagerTests.cs b/tests/Avalonia.Base.UnitTests/Media/FontManagerTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/FontManagerTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/FontManagerTests.cs
index 2be0209c85..11ecac0039 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/FontManagerTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/FontManagerTests.cs
@@ -3,7 +3,7 @@ using Avalonia.Media;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class FontManagerTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs b/tests/Avalonia.Base.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
similarity index 91%
rename from tests/Avalonia.Visuals.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
index f2fcd51629..07415ac2d6 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media.Fonts;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.Fonts
+namespace Avalonia.Base.UnitTests.Media.Fonts
{
public class FamilyNameCollectionTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyKeyTests.cs b/tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
similarity index 95%
rename from tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
index d99301ea6c..0cb70ea016 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media.Fonts;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.Fonts
+namespace Avalonia.Base.UnitTests.Media.Fonts
{
public class FontFamilyKeyTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs b/tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
index 7e1cc4cd96..1bb2300724 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
@@ -1,4 +1,5 @@
using System;
+using System.Diagnostics;
using System.Linq;
using Avalonia.Media;
using Avalonia.Media.Fonts;
@@ -6,10 +7,8 @@ using Avalonia.Platform;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.Fonts
+namespace Avalonia.Base.UnitTests.Media.Fonts
{
- using System.Diagnostics;
-
public class FontFamilyLoaderTests : IDisposable
{
private const string AssetMyFontRegular = AssetLocation + ".MyFont Regular.ttf" + Assembly + FontName;
@@ -100,7 +99,7 @@ namespace Avalonia.Visuals.UnitTests.Media.Fonts
{
var assetLoader = AvaloniaLocator.Current.GetService();
- var fontFamily = new FontFamily("resm:Avalonia.Visuals.UnitTests.Assets?assembly=Avalonia.Visuals.UnitTests#Noto Mono");
+ var fontFamily = new FontFamily("resm:Avalonia.Base.UnitTests.Assets?assembly=Avalonia.Base.UnitTests#Noto Mono");
var fontAssets = FontFamilyLoader.LoadFontAssets(fontFamily.Key).ToArray();
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/GeometryGroupTests.cs b/tests/Avalonia.Base.UnitTests/Media/GeometryGroupTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/GeometryGroupTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/GeometryGroupTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs b/tests/Avalonia.Base.UnitTests/Media/GeometryTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/GeometryTests.cs
index 7b1ed7f977..ae8dc9dad2 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/GeometryTests.cs
@@ -4,7 +4,7 @@ using Avalonia.Platform;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class GeometryTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/GlyphRunTests.cs b/tests/Avalonia.Base.UnitTests/Media/GlyphRunTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/GlyphRunTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/GlyphRunTests.cs
index ba334fdb74..cd0586233f 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/GlyphRunTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/GlyphRunTests.cs
@@ -5,7 +5,7 @@ using Avalonia.UnitTests;
using Avalonia.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class GlyphRunTests : TestWithServicesBase
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/ImageBrushTests.cs b/tests/Avalonia.Base.UnitTests/Media/ImageBrushTests.cs
similarity index 78%
rename from tests/Avalonia.Visuals.UnitTests/Media/ImageBrushTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/ImageBrushTests.cs
index ff7b94105a..2e872e7f7f 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/ImageBrushTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/ImageBrushTests.cs
@@ -1,12 +1,9 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Avalonia.Media;
+using Avalonia.Media;
using Avalonia.Media.Imaging;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class ImageBrushTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/LinearGradientBrushTests.cs b/tests/Avalonia.Base.UnitTests/Media/LinearGradientBrushTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Media/LinearGradientBrushTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/LinearGradientBrushTests.cs
index b3f78dfe8f..736bafba66 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/LinearGradientBrushTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/LinearGradientBrushTests.cs
@@ -1,10 +1,9 @@
-using System;
-using Avalonia.Media;
+using Avalonia.Media;
using Avalonia.Media.Imaging;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class LinearGradientBrushTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/MatrixTests.cs b/tests/Avalonia.Base.UnitTests/Media/MatrixTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/MatrixTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/MatrixTests.cs
index 6ef48b6161..98b1ff0e28 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/MatrixTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/MatrixTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class MatrixTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs b/tests/Avalonia.Base.UnitTests/Media/PathMarkupParserTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/PathMarkupParserTests.cs
index ba8c490829..c829690eb4 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/PathMarkupParserTests.cs
@@ -1,14 +1,13 @@
+using System.Globalization;
+using System.IO;
using Avalonia.Media;
+using Avalonia.Platform;
using Avalonia.Visuals.Platform;
+using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
- using System.Globalization;
- using System.IO;
- using Avalonia.Platform;
- using Moq;
-
public class PathMarkupParserTests
{
[Fact]
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs b/tests/Avalonia.Base.UnitTests/Media/PathSegmentTests.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/PathSegmentTests.cs
index 0737b4dc88..41d2fdb349 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/PathSegmentTests.cs
@@ -1,7 +1,7 @@
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class PathSegmentTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PenTests.cs b/tests/Avalonia.Base.UnitTests/Media/PenTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/PenTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/PenTests.cs
index 8c25019606..fecdd30834 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/PenTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/PenTests.cs
@@ -3,7 +3,7 @@ using Avalonia.Media;
using Avalonia.Media.Immutable;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class PenTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PixelRectTests.cs b/tests/Avalonia.Base.UnitTests/Media/PixelRectTests.cs
similarity index 90%
rename from tests/Avalonia.Visuals.UnitTests/Media/PixelRectTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/PixelRectTests.cs
index c6da9b77e9..61c410ca8e 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/PixelRectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/PixelRectTests.cs
@@ -1,9 +1,6 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class PixelRectTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/RectTests.cs b/tests/Avalonia.Base.UnitTests/Media/RectTests.cs
similarity index 74%
rename from tests/Avalonia.Visuals.UnitTests/Media/RectTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/RectTests.cs
index cd0c7e1ace..96473348cd 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/RectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/RectTests.cs
@@ -1,7 +1,6 @@
-using System.Globalization;
-using Xunit;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class RectTests
{
@@ -13,4 +12,4 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(expected, rect);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/RectangleGeometryTests.cs b/tests/Avalonia.Base.UnitTests/Media/RectangleGeometryTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/Media/RectangleGeometryTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/RectangleGeometryTests.cs
index 5af1bb572e..387b2f4a19 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/RectangleGeometryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/RectangleGeometryTests.cs
@@ -1,11 +1,10 @@
-using System;
-using Avalonia.Media;
+using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class RectangleGeometryTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/SolidColorBrushTests.cs b/tests/Avalonia.Base.UnitTests/Media/SolidColorBrushTests.cs
similarity index 82%
rename from tests/Avalonia.Visuals.UnitTests/Media/SolidColorBrushTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/SolidColorBrushTests.cs
index bcf63f9660..c982d8c1c8 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/SolidColorBrushTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/SolidColorBrushTests.cs
@@ -1,8 +1,7 @@
-using System;
-using Avalonia.Media;
+using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class SolidColorBrushTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextDecorationTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextDecorationTests.cs
similarity index 95%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextDecorationTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextDecorationTests.cs
index 60a41baaa7..c4537ea2f8 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextDecorationTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextDecorationTests.cs
@@ -1,7 +1,7 @@
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class TextDecorationTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiAlgorithmTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiAlgorithmTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiAlgorithmTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiAlgorithmTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
index 2f1064be21..f6b01d737c 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
+using Avalonia.Base.UnitTests.Media.TextFormatting;
namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
index 4102de10ec..033e0e2242 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
+using Avalonia.Base.UnitTests.Media.TextFormatting;
using Avalonia.Media.TextFormatting.Unicode;
namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BreakPairTable.txt b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BreakPairTable.txt
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BreakPairTable.txt
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BreakPairTable.txt
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
index c074e5a1f1..7ad2e71d77 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
@@ -5,7 +5,7 @@ using System.Net.Http;
using System.Text.RegularExpressions;
using Avalonia.Media.TextFormatting.Unicode;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public static class GraphemeBreakClassTrieGenerator
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
similarity index 96%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
index 848b60b341..e1e3e14ea7 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
///
/// This class is intended for use when the Unicode spec changes. Otherwise the containing tests are redundant.
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
index a90be6d519..1dbfbe4d24 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
@@ -8,7 +8,7 @@ using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
using Xunit.Abstractions;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public class LineBreakEnumeratorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/TestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/TestDataGenerator.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/TestDataGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/TestDataGenerator.cs
index 058de909df..33b4c8a269 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/TestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/TestDataGenerator.cs
@@ -5,7 +5,7 @@ using System.IO;
using System.Linq;
using System.Net.Http;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public abstract class TestDataGenerator : IEnumerable
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
index da9e494405..e2877abd83 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
@@ -6,7 +6,7 @@ using System.Text.RegularExpressions;
using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
internal static class UnicodeDataGenerator
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
index f122876322..f3aea83316 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public class UnicodeDataGeneratorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
index e483728423..1323ddfbd1 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
@@ -4,7 +4,7 @@ using System.IO;
using System.Linq;
using System.Net.Http;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
internal static class UnicodeEnumsGenerator
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TransformOperationsTests.cs b/tests/Avalonia.Base.UnitTests/Media/TransformOperationsTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/TransformOperationsTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TransformOperationsTests.cs
index e4f88706d8..0d84ba1700 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TransformOperationsTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TransformOperationsTests.cs
@@ -2,7 +2,7 @@ using Avalonia.Media.Transformation;
using Avalonia.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class TransformOperationsTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TypefaceTests.cs b/tests/Avalonia.Base.UnitTests/Media/TypefaceTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/Media/TypefaceTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TypefaceTests.cs
index e526172622..826c1f292b 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TypefaceTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TypefaceTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class TypefaceTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/UnicodeRangeSegmentTests.cs b/tests/Avalonia.Base.UnitTests/Media/UnicodeRangeSegmentTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/UnicodeRangeSegmentTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/UnicodeRangeSegmentTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/UnicodeRangeTests.cs b/tests/Avalonia.Base.UnitTests/Media/UnicodeRangeTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/UnicodeRangeTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/UnicodeRangeTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/RectTests.cs b/tests/Avalonia.Base.UnitTests/RectTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/RectTests.cs
rename to tests/Avalonia.Base.UnitTests/RectTests.cs
index a2b0569949..95a438b287 100644
--- a/tests/Avalonia.Visuals.UnitTests/RectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/RectTests.cs
@@ -1,6 +1,6 @@
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RectTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/RelativePointTests.cs b/tests/Avalonia.Base.UnitTests/RelativePointTests.cs
similarity index 89%
rename from tests/Avalonia.Visuals.UnitTests/RelativePointTests.cs
rename to tests/Avalonia.Base.UnitTests/RelativePointTests.cs
index c871b8ee87..c242a504b9 100644
--- a/tests/Avalonia.Visuals.UnitTests/RelativePointTests.cs
+++ b/tests/Avalonia.Base.UnitTests/RelativePointTests.cs
@@ -1,7 +1,6 @@
-using System.Globalization;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RelativePointTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/RelativeRectComparer.cs b/tests/Avalonia.Base.UnitTests/RelativeRectComparer.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/RelativeRectComparer.cs
rename to tests/Avalonia.Base.UnitTests/RelativeRectComparer.cs
index bf3bf39367..3e0acddb02 100644
--- a/tests/Avalonia.Visuals.UnitTests/RelativeRectComparer.cs
+++ b/tests/Avalonia.Base.UnitTests/RelativeRectComparer.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RelativeRectComparer : IEqualityComparer
{
diff --git a/tests/Avalonia.Visuals.UnitTests/RelativeRectTests.cs b/tests/Avalonia.Base.UnitTests/RelativeRectTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/RelativeRectTests.cs
rename to tests/Avalonia.Base.UnitTests/RelativeRectTests.cs
index 9753e0779a..ff53419d5c 100644
--- a/tests/Avalonia.Visuals.UnitTests/RelativeRectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/RelativeRectTests.cs
@@ -1,8 +1,7 @@
using System;
-using System.Globalization;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RelativeRectTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/RenderTests_Culling.cs b/tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/RenderTests_Culling.cs
rename to tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs
index ba632b791a..c7421c5827 100644
--- a/tests/Avalonia.Visuals.UnitTests/RenderTests_Culling.cs
+++ b/tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs
@@ -1,12 +1,12 @@
-using Moq;
using Avalonia.Controls;
using Avalonia.Media;
-using Avalonia.Rendering;
-using Xunit;
using Avalonia.Platform;
+using Avalonia.Rendering;
using Avalonia.UnitTests;
+using Moq;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RenderTests_Culling
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/CustomHitTestBorder.cs b/tests/Avalonia.Base.UnitTests/Rendering/CustomHitTestBorder.cs
similarity index 84%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/CustomHitTestBorder.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/CustomHitTestBorder.cs
index 3221f097ad..fece152713 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/CustomHitTestBorder.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/CustomHitTestBorder.cs
@@ -1,8 +1,7 @@
using Avalonia.Controls;
-using Avalonia.Media;
using Avalonia.Rendering;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
internal class CustomHitTestBorder : Border, ICustomHitTest
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests.cs
index e58eea42d8..c345b9a7ea 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Subjects;
-using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Media;
@@ -11,14 +10,12 @@ using Avalonia.Rendering;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Threading;
using Avalonia.UnitTests;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using Avalonia.VisualTree;
-
using Moq;
-
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class DeferredRendererTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
index d24d183709..33c7b3e0f8 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
@@ -3,7 +3,6 @@ using System.Linq;
using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Shapes;
-using Avalonia.Input;
using Avalonia.Layout;
using Avalonia.Media;
using Avalonia.Platform;
@@ -13,7 +12,7 @@ using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class DeferredRendererTests_HitTesting
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests.cs
index 6859b2b139..84bb9b00cd 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests.cs
@@ -10,7 +10,7 @@ using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class ImmediateRendererTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
index a3b0a0cdd5..1a9822e259 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
@@ -9,7 +9,7 @@ using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class ImmediateRendererTests_HitTesting
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/RenderLoopTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/RenderLoopTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/RenderLoopTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/RenderLoopTests.cs
index e9aefc46e6..6855a378b4 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/RenderLoopTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/RenderLoopTests.cs
@@ -1,13 +1,11 @@
using System;
-using System.Collections.Generic;
-using System.Text;
using System.Threading.Tasks;
using Avalonia.Rendering;
using Avalonia.Threading;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class RenderLoopTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
index 27aa0c55b5..8f307978f2 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
@@ -1,7 +1,5 @@
-using System;
-using System.Linq;
+using System.Linq;
using Avalonia.Media;
-using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
using Avalonia.Utilities;
@@ -9,7 +7,7 @@ using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class DeferredDrawingContextImplTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
similarity index 96%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
index 0cdc8827ad..2fac968206 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
@@ -2,11 +2,11 @@
using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class DrawOperationTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/LineNodeTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/LineNodeTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/LineNodeTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/LineNodeTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
index e317b43efc..01afe85b8b 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
@@ -1,20 +1,19 @@
-using System;
-using System.Linq;
+using System.Linq;
+using System.Reactive.Subjects;
using Avalonia.Controls;
+using Avalonia.Data;
+using Avalonia.Layout;
using Avalonia.Media;
+using Avalonia.Media.Imaging;
+using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
+using Avalonia.Utilities;
using Avalonia.VisualTree;
-using Xunit;
-using Avalonia.Layout;
using Moq;
-using Avalonia.Platform;
-using System.Reactive.Subjects;
-using Avalonia.Data;
-using Avalonia.Utilities;
-using Avalonia.Media.Imaging;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public partial class SceneBuilderTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
index 19b4c7e606..9f5a0363ed 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
@@ -1,16 +1,14 @@
-using System;
-using System.Linq;
+using System.Linq;
+using System.Reactive.Subjects;
using Avalonia.Controls;
+using Avalonia.Data;
using Avalonia.Media;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-using Avalonia.Layout;
-using System.Reactive.Subjects;
-using Avalonia.Data;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public partial class SceneBuilderTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
similarity index 89%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
index fac6e1ceb6..9d25a3aa44 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
@@ -1,12 +1,11 @@
-using System;
-using System.Linq;
+using System.Linq;
using Avalonia.Controls;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class SceneLayersTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneTests.cs
similarity index 90%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneTests.cs
index bba0c8b8f3..18ff31f676 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneTests.cs
@@ -1,11 +1,10 @@
-using System;
-using System.Linq;
+using System.Linq;
using Avalonia.Controls;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class SceneTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
index 4ec3630053..93266c428c 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
@@ -1,11 +1,10 @@
-using System;
-using Avalonia.Rendering.SceneGraph;
+using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class VisualNodeTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
index 8d70b45842..349fd0a6d0 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
@@ -1,10 +1,9 @@
-using System;
-using Avalonia.Controls;
+using Avalonia.Controls;
using Avalonia.Media;
using Avalonia.Rendering.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.Utilities
+namespace Avalonia.Base.UnitTests.Rendering.Utilities
{
public class TileBrushCalculatorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/SizeTests.cs b/tests/Avalonia.Base.UnitTests/SizeTests.cs
similarity index 92%
rename from tests/Avalonia.Visuals.UnitTests/SizeTests.cs
rename to tests/Avalonia.Base.UnitTests/SizeTests.cs
index 96197785b9..9b8125748a 100644
--- a/tests/Avalonia.Visuals.UnitTests/SizeTests.cs
+++ b/tests/Avalonia.Base.UnitTests/SizeTests.cs
@@ -1,6 +1,6 @@
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class SizeTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/ResourceDictionaryTests.cs b/tests/Avalonia.Base.UnitTests/Styling/ResourceDictionaryTests.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/ResourceDictionaryTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/ResourceDictionaryTests.cs
index d91d1fab9e..86b1b897d4 100644
--- a/tests/Avalonia.Styling.UnitTests/ResourceDictionaryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/ResourceDictionaryTests.cs
@@ -3,7 +3,7 @@ using Avalonia.Controls;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class ResourceDictionaryTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Child.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Child.cs
similarity index 97%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Child.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Child.cs
index d011c16ebb..66efe2cc7b 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Child.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Child.cs
@@ -1,11 +1,11 @@
using System.Collections.Generic;
-using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.LogicalTree;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Child
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Class.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Class.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Class.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Class.cs
index 72383501be..376e2b23d0 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Class.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Class.cs
@@ -1,14 +1,12 @@
-using System;
-using System.Linq;
+using System.Collections.Generic;
using System.Reactive.Linq;
using System.Threading.Tasks;
-using Moq;
using Avalonia.Controls;
using Avalonia.Styling;
+using Moq;
using Xunit;
-using System.Collections.Generic;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Class
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Descendent.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Descendent.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Descendent.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Descendent.cs
index aacf2ce223..6b52936ec5 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Descendent.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Descendent.cs
@@ -1,11 +1,11 @@
-using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.LogicalTree;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Descendant
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Multiple.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Multiple.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Multiple.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Multiple.cs
index 4436f02429..258a4a44a1 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Multiple.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Multiple.cs
@@ -1,13 +1,13 @@
-using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
+using Avalonia.Styling;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Multiple
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Name.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Name.cs
similarity index 96%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Name.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Name.cs
index 308070c52f..46b97cf384 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Name.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Name.cs
@@ -1,8 +1,9 @@
using Avalonia.Controls;
+using Avalonia.Styling;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Name
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Not.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Not.cs
similarity index 97%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Not.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Not.cs
index 23b711725a..fd1385ac47 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Not.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Not.cs
@@ -1,9 +1,9 @@
-using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Not
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_NthChild.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthChild.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_NthChild.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthChild.cs
index e1507be110..7f645be4a9 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_NthChild.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthChild.cs
@@ -1,9 +1,10 @@
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_NthChild
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_NthLastChild.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthLastChild.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_NthLastChild.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthLastChild.cs
index 00a99523c7..821ed3d0ab 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_NthLastChild.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthLastChild.cs
@@ -1,8 +1,9 @@
using System.Threading.Tasks;
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_NthLastChild
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_OfType.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_OfType.cs
similarity index 95%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_OfType.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_OfType.cs
index 2aef46575d..e86a323c71 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_OfType.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_OfType.cs
@@ -1,8 +1,9 @@
using Avalonia.Controls;
+using Avalonia.Styling;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_OfType
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Or.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Or.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Or.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Or.cs
index 2b55482593..fb5d54bd1f 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Or.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Or.cs
@@ -1,7 +1,8 @@
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Or
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_PropertyEquals.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_PropertyEquals.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_PropertyEquals.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_PropertyEquals.cs
index 729b42196b..ee1b654ba8 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_PropertyEquals.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_PropertyEquals.cs
@@ -1,10 +1,10 @@
-using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_PropertyEquals
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Template.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Template.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Template.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Template.cs
index 13cb2578cf..8b4c988037 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Template.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Template.cs
@@ -1,14 +1,13 @@
-using System;
using System.Linq;
-using System.Reactive.Linq;
-using Moq;
+using System.Threading.Tasks;
using Avalonia.Controls;
-using Avalonia.VisualTree;
using Avalonia.Diagnostics;
+using Avalonia.Styling;
+using Avalonia.VisualTree;
+using Moq;
using Xunit;
-using System.Threading.Tasks;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Template
{
diff --git a/tests/Avalonia.Styling.UnitTests/SetterTests.cs b/tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SetterTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs
index 901233801e..40d2cab4a3 100644
--- a/tests/Avalonia.Styling.UnitTests/SetterTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs
@@ -5,10 +5,11 @@ using Avalonia.Controls;
using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Data.Converters;
+using Avalonia.Styling;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SetterTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/StyleActivatorExtensions.cs b/tests/Avalonia.Base.UnitTests/Styling/StyleActivatorExtensions.cs
similarity index 97%
rename from tests/Avalonia.Styling.UnitTests/StyleActivatorExtensions.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StyleActivatorExtensions.cs
index 22f4db79d1..f5b3bb40a3 100644
--- a/tests/Avalonia.Styling.UnitTests/StyleActivatorExtensions.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StyleActivatorExtensions.cs
@@ -4,7 +4,7 @@ using System.Threading.Tasks;
using Avalonia.Reactive;
using Avalonia.Styling.Activators;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
internal static class StyleActivatorExtensions
{
diff --git a/tests/Avalonia.Styling.UnitTests/StyleTests.cs b/tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/StyleTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs
index 14710f44ba..8dedf3471f 100644
--- a/tests/Avalonia.Styling.UnitTests/StyleTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs
@@ -3,11 +3,12 @@ using System.Collections.Generic;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using Avalonia.Data;
+using Avalonia.Styling;
using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class StyleTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/StyledElementTests.cs b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/StyledElementTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StyledElementTests.cs
index fcbccba695..bb4d590060 100644
--- a/tests/Avalonia.Styling.UnitTests/StyledElementTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests.cs
@@ -1,19 +1,17 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Reactive.Linq;
-using Moq;
-using Avalonia.Styling;
-using Avalonia.UnitTests;
-using Xunit;
-using Avalonia.LogicalTree;
using Avalonia.Controls;
-using System.ComponentModel;
-using Avalonia.Controls.Primitives;
-using Avalonia.Markup.Xaml.Templates;
using Avalonia.Controls.Templates;
using Avalonia.Data;
+using Avalonia.LogicalTree;
+using Avalonia.Styling;
+using Avalonia.UnitTests;
+using Moq;
+using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class StyledElementTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/StyledElementTests_Resources.cs b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Resources.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/StyledElementTests_Resources.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Resources.cs
index 05315380fd..69d37d1c54 100644
--- a/tests/Avalonia.Styling.UnitTests/StyledElementTests_Resources.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Resources.cs
@@ -1,11 +1,11 @@
-using System;
+using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Templates;
using Avalonia.Styling;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Controls.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class StyledElementTests_Resources
{
diff --git a/tests/Avalonia.Styling.UnitTests/StylesTests.cs b/tests/Avalonia.Base.UnitTests/Styling/StylesTests.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/StylesTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StylesTests.cs
index 88ab124e01..a6777c9466 100644
--- a/tests/Avalonia.Styling.UnitTests/StylesTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StylesTests.cs
@@ -1,9 +1,9 @@
-using System;
using Avalonia.Controls;
+using Avalonia.Styling;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class StylesTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/TestObservable.cs b/tests/Avalonia.Base.UnitTests/Styling/TestObservable.cs
similarity index 90%
rename from tests/Avalonia.Styling.UnitTests/TestObservable.cs
rename to tests/Avalonia.Base.UnitTests/Styling/TestObservable.cs
index 7a07f12883..05cf7ef3e1 100644
--- a/tests/Avalonia.Styling.UnitTests/TestObservable.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/TestObservable.cs
@@ -1,7 +1,7 @@
using System;
using System.Reactive.Disposables;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class TestObservable : IObservable
{
diff --git a/tests/Avalonia.Styling.UnitTests/TestObserver.cs b/tests/Avalonia.Base.UnitTests/Styling/TestObserver.cs
similarity index 96%
rename from tests/Avalonia.Styling.UnitTests/TestObserver.cs
rename to tests/Avalonia.Base.UnitTests/Styling/TestObserver.cs
index c18fa8618f..46f26804f1 100644
--- a/tests/Avalonia.Styling.UnitTests/TestObserver.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/TestObserver.cs
@@ -1,6 +1,6 @@
using System;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
internal class TestObserver : IObserver
{
diff --git a/tests/Avalonia.Styling.UnitTests/TestSelectors.cs b/tests/Avalonia.Base.UnitTests/Styling/TestSelectors.cs
similarity index 90%
rename from tests/Avalonia.Styling.UnitTests/TestSelectors.cs
rename to tests/Avalonia.Base.UnitTests/Styling/TestSelectors.cs
index 44a087af19..bd60275d50 100644
--- a/tests/Avalonia.Styling.UnitTests/TestSelectors.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/TestSelectors.cs
@@ -1,7 +1,7 @@
using System;
using Avalonia.Styling;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public static class TestSelectors
{
diff --git a/tests/Avalonia.Styling.UnitTests/TestSubject.cs b/tests/Avalonia.Base.UnitTests/Styling/TestSubject.cs
similarity index 96%
rename from tests/Avalonia.Styling.UnitTests/TestSubject.cs
rename to tests/Avalonia.Base.UnitTests/Styling/TestSubject.cs
index 7550b545b6..c162f24d59 100644
--- a/tests/Avalonia.Styling.UnitTests/TestSubject.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/TestSubject.cs
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.Reactive.Disposables;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
internal class TestSubject : IObserver, IObservable
{
diff --git a/tests/Avalonia.Visuals.UnitTests/TestVisual.cs b/tests/Avalonia.Base.UnitTests/TestVisual.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/TestVisual.cs
rename to tests/Avalonia.Base.UnitTests/TestVisual.cs
index 29d61ddefc..fc9b9e22fb 100644
--- a/tests/Avalonia.Visuals.UnitTests/TestVisual.cs
+++ b/tests/Avalonia.Base.UnitTests/TestVisual.cs
@@ -1,10 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Avalonia.Rendering;
using Avalonia.VisualTree;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class ParamEventArgs : EventArgs
{
diff --git a/tests/Avalonia.Visuals.UnitTests/ThicknessTests.cs b/tests/Avalonia.Base.UnitTests/ThicknessTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/ThicknessTests.cs
rename to tests/Avalonia.Base.UnitTests/ThicknessTests.cs
index e85a9d5b85..094acada26 100644
--- a/tests/Avalonia.Visuals.UnitTests/ThicknessTests.cs
+++ b/tests/Avalonia.Base.UnitTests/ThicknessTests.cs
@@ -1,7 +1,6 @@
-using System.Globalization;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class ThicknessTests
{
@@ -37,4 +36,4 @@ namespace Avalonia.Visuals.UnitTests
Assert.Equal(new Thickness(1.2, 3.4, 5, 6), result);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Avalonia.Visuals.UnitTests/Utilities/ReadOnlySpanTests.cs b/tests/Avalonia.Base.UnitTests/Utilities/ReadOnlySpanTests.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/Utilities/ReadOnlySpanTests.cs
rename to tests/Avalonia.Base.UnitTests/Utilities/ReadOnlySpanTests.cs
index 1afd84e546..da30ee9d02 100644
--- a/tests/Avalonia.Visuals.UnitTests/Utilities/ReadOnlySpanTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Utilities/ReadOnlySpanTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Utilities
+namespace Avalonia.Base.UnitTests.Utilities
{
public class ReadOnlySpanTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VectorTests.cs b/tests/Avalonia.Base.UnitTests/VectorTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/VectorTests.cs
rename to tests/Avalonia.Base.UnitTests/VectorTests.cs
index f9a9e59436..154b4a8e6c 100644
--- a/tests/Avalonia.Visuals.UnitTests/VectorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/VectorTests.cs
@@ -1,8 +1,7 @@
-using Xunit;
-using Avalonia;
using System;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class VectorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualExtensionsTests.cs b/tests/Avalonia.Base.UnitTests/VisualExtensionsTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/VisualExtensionsTests.cs
rename to tests/Avalonia.Base.UnitTests/VisualExtensionsTests.cs
index 781169cfa6..4863c0fa61 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualExtensionsTests.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualExtensionsTests.cs
@@ -5,7 +5,7 @@ using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class VisualExtensionsTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTests.cs b/tests/Avalonia.Base.UnitTests/VisualTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/VisualTests.cs
rename to tests/Avalonia.Base.UnitTests/VisualTests.cs
index 38131fbfca..382001229b 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualTests.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualTests.cs
@@ -10,7 +10,7 @@ using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class VisualTests
{
@@ -262,7 +262,7 @@ namespace Avalonia.Visuals.UnitTests
LogCallback checkLogMessage = (level, area, src, mt, pv) =>
{
- if (level >= Logging.LogEventLevel.Warning)
+ if (level >= Avalonia.Logging.LogEventLevel.Warning)
{
called = true;
}
@@ -285,7 +285,7 @@ namespace Avalonia.Visuals.UnitTests
LogCallback checkLogMessage = (level, area, src, mt, pv) =>
{
- if (level >= Logging.LogEventLevel.Warning)
+ if (level >= Avalonia.Logging.LogEventLevel.Warning)
{
called = true;
}
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs b/tests/Avalonia.Base.UnitTests/VisualTree/MockRenderInterface.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs
rename to tests/Avalonia.Base.UnitTests/VisualTree/MockRenderInterface.cs
index 6100f2cb74..add8f7fd73 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualTree/MockRenderInterface.cs
@@ -4,9 +4,9 @@ using System.IO;
using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.UnitTests;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
-namespace Avalonia.Visuals.UnitTests.VisualTree
+namespace Avalonia.Base.UnitTests.VisualTree
{
class MockRenderInterface : IPlatformRenderInterface
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTree/TransformedBoundsTests.cs b/tests/Avalonia.Base.UnitTests/VisualTree/TransformedBoundsTests.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/VisualTree/TransformedBoundsTests.cs
rename to tests/Avalonia.Base.UnitTests/VisualTree/TransformedBoundsTests.cs
index 54d9ce40f0..d8158fd673 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualTree/TransformedBoundsTests.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualTree/TransformedBoundsTests.cs
@@ -1,18 +1,16 @@
using System;
using System.Collections.Generic;
-using System.Linq;
-using System.Reactive.Linq;
using Avalonia.Controls;
using Avalonia.Controls.Shapes;
-using Avalonia.VisualTree;
-using Avalonia.Rendering;
-using Xunit;
using Avalonia.Media;
-using Moq;
-using Avalonia.UnitTests;
using Avalonia.Platform;
+using Avalonia.Rendering;
+using Avalonia.UnitTests;
+using Avalonia.VisualTree;
+using Moq;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests.VisualTree
+namespace Avalonia.Base.UnitTests.VisualTree
{
public class TransformedBoundsTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs b/tests/Avalonia.Base.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
rename to tests/Avalonia.Base.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
index 139a7925b1..1020a3a4d6 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
@@ -8,7 +8,7 @@ using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.VisualTree
+namespace Avalonia.Base.UnitTests.VisualTree
{
public class VisualExtensions_GetVisualsAt
{
diff --git a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
index 2dbb054221..5d17808e0c 100644
--- a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
+++ b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
@@ -6,15 +6,9 @@
false
-
-
-
-
-
-
diff --git a/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs b/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs
index 59067e642f..6fb2a5ac24 100644
--- a/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs
+++ b/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs
@@ -2,7 +2,7 @@
using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Benchmarks
{
diff --git a/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs b/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs
index ccdb0eed2f..5cbb3b2c49 100644
--- a/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs
+++ b/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs
@@ -4,7 +4,7 @@ using System.IO;
using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.UnitTests;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Benchmarks
{
diff --git a/tests/Avalonia.Benchmarks/Styling/ResourceBenchmarks.cs b/tests/Avalonia.Benchmarks/Styling/ResourceBenchmarks.cs
new file mode 100644
index 0000000000..2a048beefa
--- /dev/null
+++ b/tests/Avalonia.Benchmarks/Styling/ResourceBenchmarks.cs
@@ -0,0 +1,113 @@
+using System;
+using Avalonia.Controls;
+using Avalonia.Platform;
+using Avalonia.PlatformSupport;
+using Avalonia.Styling;
+using Avalonia.UnitTests;
+using BenchmarkDotNet.Attributes;
+using Moq;
+
+namespace Avalonia.Benchmarks.Styling
+{
+ [MemoryDiagnoser]
+ public class ResourceBenchmarks : IDisposable
+ {
+ private readonly Control _searchStart;
+ private readonly IDisposable _app;
+
+ private static IDisposable CreateApp()
+ {
+ var services = new TestServices(
+ assetLoader: new AssetLoader(),
+ globalClock: new MockGlobalClock(),
+ platform: new AppBuilder().RuntimePlatform,
+ renderInterface: new MockPlatformRenderInterface(),
+ standardCursorFactory: Mock.Of(),
+ styler: new Styler(),
+ theme: () => CreateTheme(),
+ threadingInterface: new NullThreadingPlatform(),
+ fontManagerImpl: new MockFontManagerImpl(),
+ textShaperImpl: new MockTextShaperImpl(),
+ windowingPlatform: new MockWindowingPlatform());
+
+ return UnitTestApplication.Start(services);
+ }
+
+ private static Styles CreateTheme()
+ {
+ AssetLoader.RegisterResUriParsers();
+
+ var preHost = new Style();
+ preHost.Resources.Add("preTheme", null);
+
+ var postHost = new Style();
+ postHost.Resources.Add("postTheme", null);
+
+ return new Styles
+ {
+ preHost,
+ new TestStyles(50, 3, 5),
+ postHost
+ };
+ }
+
+ public void Dispose()
+ {
+ _app.Dispose();
+ }
+
+ public ResourceBenchmarks()
+ {
+ _searchStart = new Button();
+
+ _app = CreateApp();
+
+ Decorator root = new TestRoot(true, null)
+ {
+ Renderer = new NullRenderer()
+ };
+
+ var current = root;
+
+ for (int i = 0; i < 10; i++)
+ {
+ var child = new Decorator();
+
+ current.Child = child;
+
+ current = child;
+ }
+
+ current.Child = _searchStart;
+ }
+
+ private const int LookupCount = 100;
+
+ [Benchmark]
+ public void FindPreResource()
+ {
+ for (int i = 0; i < LookupCount; ++i)
+ {
+ _searchStart.FindResource("preTheme");
+ }
+ }
+
+ [Benchmark]
+ public void FindPostResource()
+ {
+ for (int i = 0; i < LookupCount; ++i)
+ {
+ _searchStart.FindResource("postTheme");
+ }
+ }
+
+ [Benchmark]
+ public void FindNotExistingResource()
+ {
+ for (int i = 0; i < LookupCount; ++i)
+ {
+ _searchStart.FindResource("notPresent");
+ }
+ }
+ }
+}
diff --git a/tests/Avalonia.Benchmarks/TestStyles.cs b/tests/Avalonia.Benchmarks/TestStyles.cs
new file mode 100644
index 0000000000..be2ad7d072
--- /dev/null
+++ b/tests/Avalonia.Benchmarks/TestStyles.cs
@@ -0,0 +1,29 @@
+using Avalonia.Styling;
+
+namespace Avalonia.Benchmarks
+{
+ public class TestStyles : Styles
+ {
+ public TestStyles(int childStylesCount, int childInnerStyleCount, int childResourceCount)
+ {
+ for (int i = 0; i < childStylesCount; i++)
+ {
+ var childStyles = new Styles();
+
+ for (int j = 0; j < childInnerStyleCount; j++)
+ {
+ var childStyle = new Style();
+
+ for (int k = 0; k < childResourceCount; k++)
+ {
+ childStyle.Resources.Add($"resource.{i}.{j}.{k}", null);
+ }
+
+ childStyles.Add(childStyle);
+ }
+
+ Add(childStyles);
+ }
+ }
+ }
+}
diff --git a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
index 4aed8c60c3..12eb290fde 100644
--- a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
+++ b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
@@ -18,14 +18,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
index 9eedd17716..d22a67f389 100644
--- a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
@@ -53,6 +53,19 @@ namespace Avalonia.Controls.UnitTests.Platform
Assert.True(e.Handled);
}
+ [Fact]
+ public void Down_Selects_First_Item_Of_Already_Opened_Submenu()
+ {
+ var target = new DefaultMenuInteractionHandler(false);
+ var item = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.IsSubMenuOpen);
+ var e = new KeyEventArgs { Key = Key.Down, Source = item };
+
+ target.KeyDown(item, e);
+
+ Mock.Get(item).Verify(x => x.MoveSelection(NavigationDirection.First, true));
+ Assert.True(e.Handled);
+ }
+
[Fact]
public void Right_Selects_Next_MenuItem()
{
diff --git a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
index f4c6434a68..f66b2b0457 100644
--- a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
+++ b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
@@ -18,15 +18,9 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj b/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
index cdadc3dcba..e7f1552370 100644
--- a/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
+++ b/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
@@ -11,14 +11,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj b/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj
index 636643d9e4..ad7e3ad504 100644
--- a/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj
+++ b/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj
@@ -12,14 +12,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj b/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj
deleted file mode 100644
index 3b0b082093..0000000000
--- a/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- net6.0
- Library
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Input.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Input.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 3974559efc..0000000000
--- a/tests/Avalonia.Input.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Input.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
index 15e22f4424..3eb8646835 100644
--- a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
@@ -29,6 +29,20 @@ namespace Avalonia.IntegrationTests.Appium
_ => throw new ArgumentOutOfRangeException($"Unexpected IsChecked value.")
};
+ public static bool GetIsFocused(this AppiumWebElement element)
+ {
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ {
+ var active = element.WrappedDriver.SwitchTo().ActiveElement() as AppiumWebElement;
+ return element.Id == active?.Id;
+ }
+ else
+ {
+ // https://stackoverflow.com/questions/71807788/check-if-element-is-focused-in-appium
+ throw new NotSupportedException("Couldn't work out how to check if an element is focused on mac.");
+ }
+ }
+
public static void SendClick(this AppiumWebElement element)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
@@ -44,6 +58,11 @@ namespace Avalonia.IntegrationTests.Appium
}
}
+ public static void MovePointerOver(this AppiumWebElement element)
+ {
+ new Actions(element.WrappedDriver).MoveToElement(element).Perform();
+ }
+
public static string GetAttribute(AppiumWebElement element, string windows, string macOS)
{
return element.GetAttribute(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? windows : macOS);
diff --git a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
index e9a433b975..98fb335061 100644
--- a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
@@ -1,4 +1,7 @@
-using OpenQA.Selenium.Appium;
+using System.Threading;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Appium;
+using OpenQA.Selenium.Interactions;
using Xunit;
namespace Avalonia.IntegrationTests.Appium
@@ -15,6 +18,12 @@ namespace Avalonia.IntegrationTests.Appium
var tabs = _session.FindElementByAccessibilityId("MainTabs");
var tab = tabs.FindElementByName("Menu");
tab.Click();
+
+ var reset = _session.FindElementByAccessibilityId("MenuClickedMenuItemReset");
+ reset.Click();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("None", clickedMenuItem.Text);
}
[Fact]
@@ -48,16 +57,107 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Grandchild", clickedMenuItem.Text);
}
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Child_With_Alt_Arrow_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys(Keys.Down + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Child 1", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Grandchild_With_Alt_Arrow_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys(Keys.Down + Keys.Down + Keys.Right + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Grandchild", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Child_With_Alt_Access_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys("rc")
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Child 1", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Grandchild_With_Alt_Access_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys("rhg")
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Grandchild", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Child_With_Click_Arrow_Keys()
+ {
+ var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ rootMenuItem.SendClick();
+
+ new Actions(_session)
+ .SendKeys(Keys.Down + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Child 1", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Grandchild_With_Click_Arrow_Keys()
+ {
+ var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ rootMenuItem.SendClick();
+
+ new Actions(_session)
+ .SendKeys(Keys.Down + Keys.Down + Keys.Right + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Grandchild", clickedMenuItem.Text);
+ }
+
[PlatformFact(SkipOnOSX = true)]
public void Child_AcceleratorKey()
{
var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
-
+
rootMenuItem.SendClick();
var childMenuItem = _session.FindElementByAccessibilityId("Child1MenuItem");
Assert.Equal("Ctrl+O", childMenuItem.GetAttribute("AcceleratorKey"));
}
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void PointerOver_Does_Not_Steal_Focus()
+ {
+ // Issue #7906
+ var textBox = _session.FindElementByAccessibilityId("MenuFocusTest");
+ textBox.Click();
+
+ Assert.True(textBox.GetIsFocused());
+
+ var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ rootMenuItem.MovePointerOver();
+
+ Assert.True(textBox.GetIsFocused());
+ }
}
}
diff --git a/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj b/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj
deleted file mode 100644
index f6cfe51db4..0000000000
--- a/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- net6.0
- Library
- true
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Interactivity.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Interactivity.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index c5bf2d8657..0000000000
--- a/tests/Avalonia.Interactivity.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Interactivity.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj b/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj
deleted file mode 100644
index a3c85c72b5..0000000000
--- a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- net6.0
- Library
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Layout.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Layout.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6f62e38bda..0000000000
--- a/tests/Avalonia.Layout.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Layout.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj b/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj
index 7e569f2eac..0c663e1a8f 100644
--- a/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj
+++ b/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj
@@ -12,14 +12,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
index fceea56273..fc15ad8230 100644
--- a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
+++ b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
@@ -13,14 +13,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
index 14f6525dbe..a0efa7bdeb 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
@@ -16,14 +16,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj b/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
index 5189e9335a..ffbcdd9e7c 100644
--- a/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
+++ b/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
@@ -12,14 +12,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj b/tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj
index e37cd25009..ccde66a50e 100644
--- a/tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj
+++ b/tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj
@@ -13,14 +13,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs b/tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs
index ddf4a36dcd..64050bd85e 100644
--- a/tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs
+++ b/tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs
@@ -28,7 +28,7 @@ namespace Avalonia.Skia.UnitTests.Media
}
[Fact]
- public void Should_Get_Null_For_Invalid_FamilyName()
+ public void Should_Get_Typeface_For_Invalid_FamilyName()
{
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
@@ -39,7 +39,24 @@ namespace Avalonia.Skia.UnitTests.Media
var typeface = notoMonoCollection.Get(new Typeface("ABC"));
- Assert.Null(typeface);
+ Assert.NotNull(typeface);
+ }
+ }
+
+ [Fact]
+ public void Should_Get_Typeface_For_Partial_FamilyName()
+ {
+ using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
+ {
+ var fontFamily = new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#T");
+
+ var fontCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(fontFamily);
+
+ var typeface = fontCollection.Get(new Typeface(fontFamily));
+
+ Assert.NotNull(typeface);
+
+ Assert.Equal("Twitter Color Emoji", typeface.FamilyName);
}
}
}
diff --git a/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj b/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj
deleted file mode 100644
index c5eb636a9a..0000000000
--- a/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- net6.0
- Library
- CS0067
- true
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Styling.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Styling.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 3bdb8a2f2e..0000000000
--- a/tests/Avalonia.Styling.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Styling.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
index c3cf6cd8d3..f54ccaa857 100644
--- a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
+++ b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
@@ -17,14 +17,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
index 2858a9f228..376121c269 100644
--- a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
+++ b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.IO;
using Avalonia.Media;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using Moq;
namespace Avalonia.UnitTests
diff --git a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj b/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj
deleted file mode 100644
index 57de90114e..0000000000
--- a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
- net6.0
- Library
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Visuals.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Visuals.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 2251cc6e92..0000000000
--- a/tests/Avalonia.Visuals.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Visuals.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file