Browse Source

fix tests

pull/11518/head
Emmanuel Hansen 3 years ago
parent
commit
5ad9e4ea4e
  1. 10
      src/Avalonia.Base/Input/MouseDevice.cs
  2. 9
      src/Avalonia.Base/Input/PenDevice.cs
  3. 6
      src/Avalonia.Base/Input/TouchDevice.cs
  4. 20
      tests/Avalonia.UnitTests/TouchTestHelper.cs

10
src/Avalonia.Base/Input/MouseDevice.cs

@ -7,7 +7,7 @@ using Avalonia.Metadata;
using Avalonia.Platform;
using Avalonia.Utilities;
using Avalonia.VisualTree;
using Avalonia.Input.GestureRecognizers;
#pragma warning disable CS0618
namespace Avalonia.Input
@ -163,8 +163,8 @@ namespace Avalonia.Input
device = device ?? throw new ArgumentNullException(nameof(device));
root = root ?? throw new ArgumentNullException(nameof(root));
IInputElement source;
if (_pointer.CapturedGestureRecognizer is { } gestureRecognizer)
IInputElement? source;
if (_pointer.CapturedGestureRecognizer is IGestureRecognizer gestureRecognizer)
{
source = gestureRecognizer.Target ?? hitTest;
@ -199,8 +199,8 @@ namespace Avalonia.Input
device = device ?? throw new ArgumentNullException(nameof(device));
root = root ?? throw new ArgumentNullException(nameof(root));
IInputElement source;
if (_pointer.CapturedGestureRecognizer is { } gestureRecognizer)
IInputElement? source;
if (_pointer.CapturedGestureRecognizer is IGestureRecognizer gestureRecognizer)
{
source = gestureRecognizer.Target ?? hitTest;

9
src/Avalonia.Base/Input/PenDevice.cs

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Avalonia.Input.GestureRecognizers;
using Avalonia.Input.Raw;
using Avalonia.Interactivity;
using Avalonia.Metadata;
@ -114,8 +115,8 @@ namespace Avalonia.Input
KeyModifiers inputModifiers, IInputElement? hitTest,
Lazy<IReadOnlyList<RawPointerPoint>?>? intermediatePoints)
{
IInputElement source;
if (pointer.CapturedGestureRecognizer is { } gestureRecognizer)
IInputElement? source;
if (pointer.CapturedGestureRecognizer is IGestureRecognizer gestureRecognizer)
{
source = gestureRecognizer.Target ?? hitTest;
@ -147,8 +148,8 @@ namespace Avalonia.Input
IInputElement root, Point p, PointerPointProperties properties,
KeyModifiers inputModifiers, IInputElement? hitTest)
{
IInputElement source;
if (pointer.CapturedGestureRecognizer is { } gestureRecognizer)
IInputElement? source;
if (pointer.CapturedGestureRecognizer is IGestureRecognizer gestureRecognizer)
{
source = gestureRecognizer.Target ?? hitTest;

6
src/Avalonia.Base/Input/TouchDevice.cs

@ -117,15 +117,15 @@ namespace Avalonia.Input
_pointers.Remove(args.RawPointerId);
using (pointer)
{
pointer.Capture(null);
pointer.CaptureGestureRecognizer(null);
pointer?.Capture(null);
pointer?.CaptureGestureRecognizer(null);
}
}
if (args.Type == RawPointerEventType.TouchUpdate)
{
target = gestureTarget ?? target;
var e = new PointerEventArgs(InputElement.PointerMovedEvent, target, pointer, (Visual)args.Root,
var e = new PointerEventArgs(InputElement.PointerMovedEvent, target, pointer!, (Visual)args.Root,
args.Position, ev.Timestamp,
new PointerPointProperties(GetModifiers(args.InputModifiers, true), updateKind),
keyModifier, args.IntermediatePoints);

20
tests/Avalonia.UnitTests/TouchTestHelper.cs

@ -27,8 +27,13 @@ namespace Avalonia.UnitTests
public void Move(Interactive target, Interactive source, in Point position, KeyModifiers modifiers = default)
{
target.RaiseEvent(new PointerEventArgs(InputElement.PointerMovedEvent, source, _pointer, (Visual)target, position,
Timestamp(), PointerPointProperties.None, modifiers));
var e = new PointerEventArgs(InputElement.PointerMovedEvent, source, _pointer, (Visual)target, position,
Timestamp(), PointerPointProperties.None, modifiers);
if (_pointer.CapturedGestureRecognizer != null)
_pointer.CapturedGestureRecognizer.PointerMoved(e);
else
target.RaiseEvent(e);
}
public void Up(Interactive target, Point position = default, KeyModifiers modifiers = default)
@ -36,9 +41,16 @@ namespace Avalonia.UnitTests
public void Up(Interactive target, Interactive source, Point position = default, KeyModifiers modifiers = default)
{
source.RaiseEvent(new PointerReleasedEventArgs(source, _pointer, (Visual)target, position, Timestamp(), PointerPointProperties.None,
modifiers, MouseButton.None));
var e = new PointerReleasedEventArgs(source, _pointer, (Visual)target, position, Timestamp(), PointerPointProperties.None,
modifiers, MouseButton.None);
if (_pointer.CapturedGestureRecognizer != null)
_pointer.CapturedGestureRecognizer.PointerReleased(e);
else
source.RaiseEvent(e);
_pointer.Capture(null);
_pointer.CaptureGestureRecognizer(null);
}
public void Tap(Interactive target, Point position = default, KeyModifiers modifiers = default)

Loading…
Cancel
Save