From cd18ff3ef951c1cf9dab3651763f9e848673cd74 Mon Sep 17 00:00:00 2001 From: Lubomir Tetak <50887170+ltetak@users.noreply.github.com> Date: Fri, 1 Dec 2023 05:49:01 +0100 Subject: [PATCH] Ignore mouse move when left window (#13724) #Conflicts: # src/Avalonia.Base/Input/PointerOverPreProcessor.cs --- src/Avalonia.Base/Input/PointerOverPreProcessor.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Avalonia.Base/Input/PointerOverPreProcessor.cs b/src/Avalonia.Base/Input/PointerOverPreProcessor.cs index 0afdb8e0809..8ab7327ca49 100644 --- a/src/Avalonia.Base/Input/PointerOverPreProcessor.cs +++ b/src/Avalonia.Base/Input/PointerOverPreProcessor.cs @@ -42,12 +42,15 @@ public void OnNext(RawInputEventArgs value) } if (args.Type is RawPointerEventType.LeaveWindow or RawPointerEventType.NonClientLeftButtonDown - && _currentPointer is var (lastPointer, lastPosition)) + or RawPointerEventType.TouchCancel or RawPointerEventType.TouchEnd) { - _currentPointer = null; - ClearPointerOver(lastPointer, args.Root, 0, PointToClient(args.Root, lastPosition), - new PointerPointProperties(args.InputModifiers, args.Type.ToUpdateKind()), - args.InputModifiers.ToKeyModifiers()); + if (_currentPointer is var (lastPointer, lastPosition)) + { + _currentPointer = null; + ClearPointerOver(lastPointer, args.Root, 0, PointToClient(args.Root, lastPosition), + new PointerPointProperties(args.InputModifiers, args.Type.ToUpdateKind()), + args.InputModifiers.ToKeyModifiers()); + } } else if (pointerDevice.TryGetPointer(args) is { } pointer && pointer.Type != PointerType.Touch)