diff --git a/build/SourceLink.props b/build/SourceLink.props
index 1e007e01eb..0f77c2a613 100644
--- a/build/SourceLink.props
+++ b/build/SourceLink.props
@@ -3,7 +3,7 @@
true
false
true
- embedded
+ full
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
diff --git a/native/Avalonia.Native/src/OSX/window.mm b/native/Avalonia.Native/src/OSX/window.mm
index 2073e130cb..d5289f5229 100644
--- a/native/Avalonia.Native/src/OSX/window.mm
+++ b/native/Avalonia.Native/src/OSX/window.mm
@@ -206,7 +206,11 @@ public:
auto window = Window;
Window = nullptr;
- [window close];
+ try{
+ // Seems to throw sometimes on application exit.
+ [window close];
+ }
+ catch(NSException*){}
}
return S_OK;
@@ -724,6 +728,7 @@ private:
if (cparent->WindowState() == Minimized)
cparent->SetWindowState(Normal);
+ [Window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary];
[cparent->Window addChildWindow:Window ordered:NSWindowAbove];
UpdateStyle();
diff --git a/packages/Avalonia/AvaloniaBuildTasks.targets b/packages/Avalonia/AvaloniaBuildTasks.targets
index 3f9ccb04eb..d43a5c1624 100644
--- a/packages/Avalonia/AvaloniaBuildTasks.targets
+++ b/packages/Avalonia/AvaloniaBuildTasks.targets
@@ -88,6 +88,7 @@
$(IntermediateOutputPath)/Avalonia/references
$(IntermediateOutputPath)/Avalonia/original.dll
false
+ false
+ public Task RunAsync(Animatable control, IClock clock = null)
+ {
+ return RunAsync(control, clock, default);
+ }
+
///
public Task RunAsync(Animatable control, IClock clock = null, CancellationToken cancellationToken = default)
{
diff --git a/src/Avalonia.Animation/Animators/Animator`1.cs b/src/Avalonia.Animation/Animators/Animator`1.cs
index d784227620..23afa76bf6 100644
--- a/src/Avalonia.Animation/Animators/Animator`1.cs
+++ b/src/Avalonia.Animation/Animators/Animator`1.cs
@@ -79,15 +79,15 @@ namespace Avalonia.Animation.Animators
T oldValue, newValue;
- if (firstKeyframe.isNeutral)
- oldValue = neutralValue;
+ if (!firstKeyframe.isNeutral && firstKeyframe.Value is T firstKeyframeValue)
+ oldValue = firstKeyframeValue;
else
- oldValue = (T)firstKeyframe.Value;
+ oldValue = neutralValue;
- if (lastKeyframe.isNeutral)
- newValue = neutralValue;
+ if (!lastKeyframe.isNeutral && lastKeyframe.Value is T lastKeyframeValue)
+ newValue = lastKeyframeValue;
else
- newValue = (T)lastKeyframe.Value;
+ newValue = neutralValue;
if (lastKeyframe.KeySpline != null)
progress = lastKeyframe.KeySpline.GetSplineProgress(progress);
diff --git a/src/Avalonia.Animation/ApiCompatBaseline.txt b/src/Avalonia.Animation/ApiCompatBaseline.txt
index 58cb7830e7..973698f872 100644
--- a/src/Avalonia.Animation/ApiCompatBaseline.txt
+++ b/src/Avalonia.Animation/ApiCompatBaseline.txt
@@ -1,6 +1,5 @@
Compat issues with assembly Avalonia.Animation:
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.Animation.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)' 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: 4
+Total Issues: 3
diff --git a/src/Avalonia.Base/Data/Converters/MethodToCommandConverter.cs b/src/Avalonia.Base/Data/Converters/MethodToCommandConverter.cs
index 7ff0a8ceca..4a4644317d 100644
--- a/src/Avalonia.Base/Data/Converters/MethodToCommandConverter.cs
+++ b/src/Avalonia.Base/Data/Converters/MethodToCommandConverter.cs
@@ -140,18 +140,9 @@ namespace Avalonia.Data.Converters
);
}
- Action