|
|
|
@ -52,6 +52,7 @@ namespace Avalonia.Input |
|
|
|
} |
|
|
|
|
|
|
|
var target = pointer.Captured ?? args.Root; |
|
|
|
var gestureTarget = pointer.CapturedGestureRecognizer?.Target; |
|
|
|
var updateKind = args.Type.ToUpdateKind(); |
|
|
|
var keyModifier = args.InputModifiers.ToKeyModifiers(); |
|
|
|
|
|
|
|
@ -95,10 +96,19 @@ namespace Avalonia.Input |
|
|
|
_pointers.Remove(args.RawPointerId); |
|
|
|
using (pointer) |
|
|
|
{ |
|
|
|
target.RaiseEvent(new PointerReleasedEventArgs(target, pointer, |
|
|
|
(Visual)args.Root, args.Position, ev.Timestamp, |
|
|
|
new PointerPointProperties(GetModifiers(args.InputModifiers, false), updateKind), |
|
|
|
keyModifier, MouseButton.Left)); |
|
|
|
target = gestureTarget ?? target; |
|
|
|
var e = new PointerReleasedEventArgs(target, pointer, |
|
|
|
(Visual)args.Root, args.Position, ev.Timestamp, |
|
|
|
new PointerPointProperties(GetModifiers(args.InputModifiers, false), updateKind), |
|
|
|
keyModifier, MouseButton.Left); |
|
|
|
if (gestureTarget != null) |
|
|
|
{ |
|
|
|
pointer?.CapturedGestureRecognizer?.PointerReleased(e); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
target.RaiseEvent(e); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -106,15 +116,28 @@ namespace Avalonia.Input |
|
|
|
{ |
|
|
|
_pointers.Remove(args.RawPointerId); |
|
|
|
using (pointer) |
|
|
|
{ |
|
|
|
pointer.Capture(null); |
|
|
|
pointer.CaptureGestureRecognizer(null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (args.Type == RawPointerEventType.TouchUpdate) |
|
|
|
{ |
|
|
|
target.RaiseEvent(new PointerEventArgs(InputElement.PointerMovedEvent, target, pointer, (Visual)args.Root, |
|
|
|
target = gestureTarget ?? target; |
|
|
|
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)); |
|
|
|
keyModifier, args.IntermediatePoints); |
|
|
|
|
|
|
|
if (gestureTarget != null) |
|
|
|
{ |
|
|
|
pointer?.CapturedGestureRecognizer?.PointerMoved(e); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
target.RaiseEvent(e); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|