Browse Source

Merge branch 'master' into missing-ScrollGestureEndedEvent-mapping

pull/9911/head
Max Katz 3 years ago
committed by GitHub
parent
commit
2d39baf059
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      src/Avalonia.Base/Controls/NameScopeExtensions.cs
  2. 4
      src/Avalonia.Build.Tasks/ComInteropHelper.cs
  3. 4
      src/Avalonia.Controls/PullToRefresh/ScrollViewerIRefreshInfoProviderAdapter.cs
  4. 4
      src/Avalonia.Controls/Templates/FuncTreeDataTemplate`1.cs
  5. 8
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/ControlDetailsViewModel.cs
  6. 12
      src/Markup/Avalonia.Markup/Markup/Parsers/SelectorGrammar.cs
  7. 2
      src/Windows/Avalonia.Win32.Interop/Wpf/IntSize.cs
  8. 2
      src/Windows/Avalonia.Win32/WindowImpl.CustomCaptionProc.cs

21
src/Avalonia.Base/Controls/NameScopeExtensions.cs

@ -25,13 +25,18 @@ namespace Avalonia.Controls
var result = nameScope.Find(name); var result = nameScope.Find(name);
if (result != null && !(result is T)) if (result == null)
{ {
throw new InvalidOperationException( return null;
$"Expected control '{name}' to be '{typeof(T)} but it was '{result.GetType()}'.");
} }
return (T?)result; if (result is T typed)
{
return typed;
}
throw new InvalidOperationException(
$"Expected control '{name}' to be '{typeof(T)} but it was '{result.GetType()}'.");
} }
/// <summary> /// <summary>
@ -74,13 +79,13 @@ namespace Avalonia.Controls
throw new KeyNotFoundException($"Could not find control '{name}'."); throw new KeyNotFoundException($"Could not find control '{name}'.");
} }
if (!(result is T)) if (result is T typed)
{ {
throw new InvalidOperationException( return typed;
$"Expected control '{name}' to be '{typeof(T)} but it was '{result.GetType()}'.");
} }
return (T)result; throw new InvalidOperationException(
$"Expected control '{name}' to be '{typeof(T)} but it was '{result.GetType()}'.");
} }
/// <summary> /// <summary>

4
src/Avalonia.Build.Tasks/ComInteropHelper.cs

@ -65,10 +65,8 @@ namespace Avalonia.Build.Tasks
{ {
Instruction instruction = instructions[i]; Instruction instruction = instructions[i];
if (instruction.OpCode == OpCodes.Call && instruction.Operand is MethodReference) if (instruction.OpCode == OpCodes.Call && instruction.Operand is MethodReference methodDescription)
{ {
var methodDescription = (MethodReference)instruction.Operand;
if (methodDescription.Name.StartsWith("Calli") && methodDescription.DeclaringType.Name == "LocalInterop") if (methodDescription.Name.StartsWith("Calli") && methodDescription.DeclaringType.Name == "LocalInterop")
{ {
var callSite = new CallSite(methodDescription.ReturnType) { CallingConvention = MethodCallingConvention.StdCall }; var callSite = new CallSite(methodDescription.ReturnType) { CallingConvention = MethodCallingConvention.StdCall };

4
src/Avalonia.Controls/PullToRefresh/ScrollViewerIRefreshInfoProviderAdapter.cs

@ -197,12 +197,12 @@ namespace Avalonia.Controls.PullToRefresh
throw new ArgumentException(nameof(_scrollViewer), "Adaptee's content property must be a Visual"); throw new ArgumentException(nameof(_scrollViewer), "Adaptee's content property must be a Visual");
} }
if (content.Parent is not InputElement) if (content.Parent is not InputElement parent)
{ {
throw new ArgumentException(nameof(_scrollViewer), "Adaptee's content parent must be an InputElement"); throw new ArgumentException(nameof(_scrollViewer), "Adaptee's content parent must be an InputElement");
} }
MakeInteractionSource(content.Parent as InputElement); MakeInteractionSource(parent);
if (_scrollViewer != null) if (_scrollViewer != null)
{ {

4
src/Avalonia.Controls/Templates/FuncTreeDataTemplate`1.cs

@ -59,7 +59,7 @@ namespace Avalonia.Controls.Templates
/// <returns>The untyped function.</returns> /// <returns>The untyped function.</returns>
private static Func<object?, bool> CastMatch(Func<T, bool> f) private static Func<object?, bool> CastMatch(Func<T, bool> f)
{ {
return o => (o is T) && f((T)o); return o => o is T arg && f(arg);
} }
/// <summary> /// <summary>
@ -72,7 +72,7 @@ namespace Avalonia.Controls.Templates
{ {
return (o, s) => f((T)o!, s); return (o, s) => f((T)o!, s);
} }
/// <summary> /// <summary>
/// Casts a function with a typed parameter to an untyped function. /// Casts a function with a typed parameter to an untyped function.
/// </summary> /// </summary>

8
src/Avalonia.Diagnostics/Diagnostics/ViewModels/ControlDetailsViewModel.cs

@ -33,12 +33,12 @@ namespace Avalonia.Diagnostics.ViewModels
{ {
_avaloniaObject = avaloniaObject; _avaloniaObject = avaloniaObject;
TreePage = treePage; TreePage = treePage;
Layout = avaloniaObject is Visual Layout = avaloniaObject is Visual visual
? new ControlLayoutViewModel((Visual)avaloniaObject) ? new ControlLayoutViewModel(visual)
: default; : default;
NavigateToProperty(_avaloniaObject, (_avaloniaObject as Control)?.Name ?? _avaloniaObject.ToString()); NavigateToProperty(_avaloniaObject, (_avaloniaObject as Control)?.Name ?? _avaloniaObject.ToString());
AppliedStyles = new ObservableCollection<StyleViewModel>(); AppliedStyles = new ObservableCollection<StyleViewModel>();
PseudoClasses = new ObservableCollection<PseudoClassViewModel>(); PseudoClasses = new ObservableCollection<PseudoClassViewModel>();

12
src/Markup/Avalonia.Markup/Markup/Parsers/SelectorGrammar.cs

@ -552,7 +552,8 @@ namespace Avalonia.Markup.Parsers
public override bool Equals(object? obj) public override bool Equals(object? obj)
{ {
return obj is ClassSyntax && ((ClassSyntax)obj).Class == Class; return obj is ClassSyntax syntax &&
syntax.Class == Class;
} }
} }
@ -562,7 +563,8 @@ namespace Avalonia.Markup.Parsers
public override bool Equals(object? obj) public override bool Equals(object? obj)
{ {
return obj is NameSyntax && ((NameSyntax)obj).Name == Name; return obj is NameSyntax syntax &&
syntax.Name == Name;
} }
} }
@ -574,9 +576,9 @@ namespace Avalonia.Markup.Parsers
public override bool Equals(object? obj) public override bool Equals(object? obj)
{ {
return obj is PropertySyntax && return obj is PropertySyntax syntax &&
((PropertySyntax)obj).Property == Property && syntax.Property == Property &&
((PropertySyntax)obj).Value == Value; syntax.Value == Value;
} }
} }

2
src/Windows/Avalonia.Win32.Interop/Wpf/IntSize.cs

@ -28,7 +28,7 @@ namespace Avalonia.Win32.Interop.Wpf
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(null, obj)) return false;
return obj is IntSize && Equals((IntSize) obj); return obj is IntSize size && Equals(size);
} }
public override int GetHashCode() public override int GetHashCode()

2
src/Windows/Avalonia.Win32/WindowImpl.CustomCaptionProc.cs

@ -109,7 +109,7 @@ namespace Avalonia.Win32
if (_owner is Window window) if (_owner is Window window)
{ {
var visual = window.Renderer.HitTestFirst(position, (Visual)_owner, x => var visual = window.Renderer.HitTestFirst(position, window, x =>
{ {
if (x is IInputElement ie && (!ie.IsHitTestVisible || !ie.IsEffectivelyVisible)) if (x is IInputElement ie && (!ie.IsHitTestVisible || !ie.IsEffectivelyVisible))
{ {

Loading…
Cancel
Save