|
|
|
@ -1,10 +1,13 @@ |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Threading; |
|
|
|
using Avalonia.Controls; |
|
|
|
using Avalonia.Input; |
|
|
|
using Avalonia.Input.GestureRecognizers; |
|
|
|
using Avalonia.Media; |
|
|
|
using Avalonia.Platform; |
|
|
|
using Avalonia.UnitTests; |
|
|
|
using Moq; |
|
|
|
using Xunit; |
|
|
|
|
|
|
|
namespace Avalonia.Base.UnitTests.Input |
|
|
|
@ -170,6 +173,35 @@ namespace Avalonia.Base.UnitTests.Input |
|
|
|
Assert.False(raised); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Hold_Should_Not_Be_Raised_For_Multiple_Contact() |
|
|
|
{ |
|
|
|
using var app = UnitTestApplication.Start(TestServices.MockThreadingInterface); |
|
|
|
|
|
|
|
var iSettingsMock = new Mock<IPlatformSettings>(); |
|
|
|
iSettingsMock.Setup(x => x.HoldWaitDuration).Returns(TimeSpan.FromMilliseconds(300)); |
|
|
|
AvaloniaLocator.CurrentMutable.BindToSelf(this) |
|
|
|
.Bind<IPlatformSettings>().ToConstant(iSettingsMock.Object); |
|
|
|
Border border = new Border(); |
|
|
|
border.IsHoldWithMouseEnabled = true; |
|
|
|
var decorator = new Decorator |
|
|
|
{ |
|
|
|
Child = border |
|
|
|
}; |
|
|
|
var raised = false; |
|
|
|
|
|
|
|
decorator.AddHandler(Gestures.HoldingEvent, (s, e) => raised = true); |
|
|
|
|
|
|
|
var secondMouse = new MouseTestHelper(); |
|
|
|
|
|
|
|
_mouse.Down(border, MouseButton.Left); |
|
|
|
|
|
|
|
Thread.Sleep(1000); |
|
|
|
secondMouse.Down(border, MouseButton.Left); |
|
|
|
|
|
|
|
Assert.False(raised); |
|
|
|
} |
|
|
|
|
|
|
|
private static void AddHandlers( |
|
|
|
Decorator decorator, |
|
|
|
Border border, |
|
|
|
|