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

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

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

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

@ -117,15 +117,15 @@ namespace Avalonia.Input
_pointers.Remove(args.RawPointerId); _pointers.Remove(args.RawPointerId);
using (pointer) using (pointer)
{ {
pointer.Capture(null); pointer?.Capture(null);
pointer.CaptureGestureRecognizer(null); pointer?.CaptureGestureRecognizer(null);
} }
} }
if (args.Type == RawPointerEventType.TouchUpdate) if (args.Type == RawPointerEventType.TouchUpdate)
{ {
target = gestureTarget ?? target; 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, args.Position, ev.Timestamp,
new PointerPointProperties(GetModifiers(args.InputModifiers, true), updateKind), new PointerPointProperties(GetModifiers(args.InputModifiers, true), updateKind),
keyModifier, args.IntermediatePoints); 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) public void Move(Interactive target, Interactive source, in Point position, KeyModifiers modifiers = default)
{ {
target.RaiseEvent(new PointerEventArgs(InputElement.PointerMovedEvent, source, _pointer, (Visual)target, position, var e = new PointerEventArgs(InputElement.PointerMovedEvent, source, _pointer, (Visual)target, position,
Timestamp(), PointerPointProperties.None, modifiers)); 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) 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) 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, var e = new PointerReleasedEventArgs(source, _pointer, (Visual)target, position, Timestamp(), PointerPointProperties.None,
modifiers, MouseButton.None)); modifiers, MouseButton.None);
if (_pointer.CapturedGestureRecognizer != null)
_pointer.CapturedGestureRecognizer.PointerReleased(e);
else
source.RaiseEvent(e);
_pointer.Capture(null); _pointer.Capture(null);
_pointer.CaptureGestureRecognizer(null);
} }
public void Tap(Interactive target, Point position = default, KeyModifiers modifiers = default) public void Tap(Interactive target, Point position = default, KeyModifiers modifiers = default)

Loading…
Cancel
Save