Browse Source

Merge branch 'master' into fixes/Warnings/Nullable/Framebuffer

pull/10178/head
Max Katz 4 years ago
committed by GitHub
parent
commit
8f7f7f7f29
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      src/Avalonia.Base/Animation/Animatable.cs
  2. 5
      src/Avalonia.Controls/Automation/Peers/ListItemAutomationPeer.cs
  3. 2
      src/tools/DevGenerators/CompositionGenerator/Generator.ListProxy.cs
  4. 4
      src/tools/DevGenerators/CompositionGenerator/Generator.cs
  5. 2
      src/tools/DevGenerators/EnumMemberDictionaryGenerator.cs
  6. 2
      src/tools/DevGenerators/GetProcAddressInitialization.cs

14
src/Avalonia.Base/Animation/Animatable.cs

@ -27,6 +27,7 @@ namespace Avalonia.Animation
AvaloniaProperty.Register<Animatable, Transitions?>(nameof(Transitions));
private bool _transitionsEnabled = true;
private bool _isSubscribedToTransitionsCollection = false;
private Dictionary<ITransition, TransitionState>? _transitionState;
/// <summary>
@ -62,6 +63,11 @@ namespace Avalonia.Animation
if (Transitions is object)
{
if (!_isSubscribedToTransitionsCollection)
{
_isSubscribedToTransitionsCollection = true;
Transitions.CollectionChanged += TransitionsCollectionChanged;
}
AddTransitions(Transitions);
}
}
@ -72,7 +78,7 @@ namespace Avalonia.Animation
/// </summary>
/// <remarks>
/// This method should not be called from user code, it will be called automatically by the framework
/// when a control is added to the visual tree.
/// when a control is removed from the visual tree.
/// </remarks>
protected void DisableTransitions()
{
@ -82,6 +88,11 @@ namespace Avalonia.Animation
if (Transitions is object)
{
if (_isSubscribedToTransitionsCollection)
{
_isSubscribedToTransitionsCollection = false;
Transitions.CollectionChanged -= TransitionsCollectionChanged;
}
RemoveTransitions(Transitions);
}
}
@ -110,6 +121,7 @@ namespace Avalonia.Animation
}
newTransitions.CollectionChanged += TransitionsCollectionChanged;
_isSubscribedToTransitionsCollection = true;
AddTransitions(toAdd);
}

5
src/Avalonia.Controls/Automation/Peers/ListItemAutomationPeer.cs

@ -1,5 +1,4 @@
using System;
using Avalonia.Automation.Provider;
using Avalonia.Automation.Provider;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Selection;
@ -64,7 +63,7 @@ namespace Avalonia.Automation.Peers
if (Owner.Parent is ItemsControl parent &&
parent.GetValue(ListBox.SelectionProperty) is ISelectionModel selectionModel)
{
var index = parent.ItemContainerGenerator.IndexFromContainer(Owner);
var index = parent.IndexFromContainer(Owner);
if (index != -1)
selectionModel.Deselect(index);

2
src/tools/DevGenerators/CompositionGenerator/Generator.ListProxy.cs

@ -112,7 +112,7 @@ class Template
var defs = cl.Members.OfType<MethodDeclarationSyntax>().First(m => m.Identifier.Text == "InitializeDefaults");
cl = cl.ReplaceNode(defs.Body, defs.Body.AddStatements(
cl = cl.ReplaceNode(defs.Body!, defs.Body!.AddStatements(
ParseStatement($"_list = new ServerListProxyHelper<{itemType}, {serverItemType}>(this);")));

4
src/tools/DevGenerators/CompositionGenerator/Generator.cs

@ -297,8 +297,8 @@ namespace Avalonia.SourceGenerator.CompositionGenerator
server = server.WithBaseList(
server.BaseList?.AddTypes(SimpleBaseType(ParseTypeName(impl.ServerName))));
client = client.AddMembers(
ParseMemberDeclaration($"{impl.ServerName} {impl.Name}.Server => Server;"));
if(ParseMemberDeclaration($"{impl.ServerName} {impl.Name}.Server => Server;") is { } member)
client = client.AddMembers(member);
}

2
src/tools/DevGenerators/EnumMemberDictionaryGenerator.cs

@ -32,7 +32,7 @@ public class EnumMemberDictionaryGenerator : IIncrementalGenerator
).Collect();
context.RegisterSourceOutput(all, static (context, methods) =>
{
foreach (var typeGroup in methods.GroupBy(f => f.ContainingType, SymbolEqualityComparer.Default))
foreach (var typeGroup in methods.GroupBy<IMethodSymbol,ISymbol>(f => f.ContainingType, SymbolEqualityComparer.Default))
{
var classBuilder = new StringBuilder();
if (typeGroup.Key.ContainingNamespace != null)

2
src/tools/DevGenerators/GetProcAddressInitialization.cs

@ -34,7 +34,7 @@ public class GetProcAddressInitializationGenerator : IIncrementalGenerator
var all = fieldsWithAttribute.Collect();
context.RegisterSourceOutput(all, static (context, methods) =>
{
foreach (var typeGroup in methods.GroupBy(f => f.ContainingType, SymbolEqualityComparer.Default))
foreach (var typeGroup in methods.GroupBy<IMethodSymbol,ISymbol>(f => f.ContainingType, SymbolEqualityComparer.Default))
{
var nextContext = 0;
var contexts = new Dictionary<string, int>();

Loading…
Cancel
Save