mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2026-01-01 16:59:35 +01:00
Fixed Button with WantContinuousPressed = true not responding to single clicks
This commit is contained in:
@@ -382,6 +382,65 @@ public class MouseTests (ITestOutputHelper output)
|
||||
view.Dispose ();
|
||||
}
|
||||
|
||||
|
||||
[Theory]
|
||||
[InlineData (MouseFlags.Button1Pressed, MouseFlags.Button1Released, MouseFlags.Button1Clicked)]
|
||||
[InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)]
|
||||
[InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released, MouseFlags.Button3Clicked)]
|
||||
[InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released, MouseFlags.Button4Clicked)]
|
||||
public void WantContinuousButtonPressed_True_Button_Clicked_Clicks (MouseFlags pressed, MouseFlags released, MouseFlags clicked)
|
||||
{
|
||||
var me = new MouseEvent ();
|
||||
|
||||
var view = new View ()
|
||||
{
|
||||
Width = 1,
|
||||
Height = 1,
|
||||
WantContinuousButtonPressed = true
|
||||
};
|
||||
|
||||
var clickedCount = 0;
|
||||
|
||||
view.MouseClick += (s, e) => clickedCount++;
|
||||
|
||||
me.Flags = clicked;
|
||||
view.NewMouseEvent (me);
|
||||
Assert.Equal (1, clickedCount);
|
||||
|
||||
view.Dispose ();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData (MouseFlags.Button1Pressed, MouseFlags.Button1Released, MouseFlags.Button1Clicked)]
|
||||
[InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)]
|
||||
[InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released, MouseFlags.Button3Clicked)]
|
||||
[InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released, MouseFlags.Button4Clicked)]
|
||||
public void WantContinuousButtonPressed_True_Button_Press_Release_Clicks (MouseFlags pressed, MouseFlags released, MouseFlags clicked)
|
||||
{
|
||||
var me = new MouseEvent ();
|
||||
|
||||
var view = new View ()
|
||||
{
|
||||
Width = 1,
|
||||
Height = 1,
|
||||
WantContinuousButtonPressed = true
|
||||
};
|
||||
|
||||
var clickedCount = 0;
|
||||
|
||||
view.MouseClick += (s, e) => clickedCount++;
|
||||
|
||||
me.Flags = pressed;
|
||||
view.NewMouseEvent (me);
|
||||
Assert.Equal (1, clickedCount);
|
||||
|
||||
me.Flags = released;
|
||||
view.NewMouseEvent (me);
|
||||
Assert.Equal (1, clickedCount);
|
||||
|
||||
view.Dispose ();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData (MouseFlags.Button1Pressed, MouseFlags.Button1Released, MouseFlags.Button1Clicked)]
|
||||
[InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)]
|
||||
|
||||
@@ -757,4 +757,73 @@ public class ButtonTests (ITestOutputHelper output)
|
||||
Assert.Equal (new (0, 0, 30, 5), pos);
|
||||
top.Dispose ();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData (MouseFlags.Button1Pressed, MouseFlags.Button1Released, MouseFlags.Button1Clicked)]
|
||||
[InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)]
|
||||
[InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released, MouseFlags.Button3Clicked)]
|
||||
[InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released, MouseFlags.Button4Clicked)]
|
||||
public void WantContinuousButtonPressed_True_ButtonClick_Accepts (MouseFlags pressed, MouseFlags released, MouseFlags clicked)
|
||||
{
|
||||
var me = new MouseEvent ();
|
||||
|
||||
var button = new Button ()
|
||||
{
|
||||
AutoSize = false,
|
||||
Width = 1,
|
||||
Height = 1,
|
||||
WantContinuousButtonPressed = true
|
||||
};
|
||||
|
||||
var acceptCount = 0;
|
||||
|
||||
button.Accept += (s, e) => acceptCount++;
|
||||
|
||||
me.Flags = pressed;
|
||||
button.NewMouseEvent (me);
|
||||
Assert.Equal (1, acceptCount);
|
||||
|
||||
me.Flags = released;
|
||||
button.NewMouseEvent (me);
|
||||
Assert.Equal (1, acceptCount);
|
||||
|
||||
me.Flags = clicked;
|
||||
button.NewMouseEvent (me);
|
||||
Assert.Equal (1, acceptCount);
|
||||
|
||||
button.Dispose ();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData (MouseFlags.Button1Pressed, MouseFlags.Button1Released, MouseFlags.Button1Clicked)]
|
||||
[InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)]
|
||||
[InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released, MouseFlags.Button3Clicked)]
|
||||
[InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released, MouseFlags.Button4Clicked)]
|
||||
public void WantContinuousButtonPressed_True_ButtonPressRelease_Accepts (MouseFlags pressed, MouseFlags released, MouseFlags clicked)
|
||||
{
|
||||
var me = new MouseEvent ();
|
||||
|
||||
var button = new Button ()
|
||||
{
|
||||
AutoSize = false,
|
||||
Width = 1,
|
||||
Height = 1,
|
||||
WantContinuousButtonPressed = true
|
||||
};
|
||||
|
||||
var acceptCount = 0;
|
||||
|
||||
button.Accept += (s, e) => acceptCount++;
|
||||
|
||||
me.Flags = pressed;
|
||||
button.NewMouseEvent (me);
|
||||
Assert.Equal (1, acceptCount);
|
||||
|
||||
me.Flags = released;
|
||||
button.NewMouseEvent (me);
|
||||
Assert.Equal (1, acceptCount);
|
||||
|
||||
button.Dispose ();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user