diff --git a/Terminal.Gui/View/View.Mouse.cs b/Terminal.Gui/View/View.Mouse.cs index b171dda3e..bc9682cb7 100644 --- a/Terminal.Gui/View/View.Mouse.cs +++ b/Terminal.Gui/View/View.Mouse.cs @@ -251,7 +251,7 @@ public partial class View // Mouse APIs } // Post-Conditions - if (HighlightStyle != HighlightStyle.None || (WantContinuousButtonPressed && WantMousePositionReports)) + if (HighlightStyle != HighlightStyle.None || WantContinuousButtonPressed) { if (WhenGrabbedHandlePressed (mouseEvent)) { @@ -527,7 +527,6 @@ public partial class View // Mouse APIs if (WantContinuousButtonPressed && Application.MouseGrabView == this) { - // If this is not the first pressed event, generate a click return RaiseMouseClickEvent (mouseEvent); } diff --git a/UnitTests/View/Mouse/MouseTests.cs b/UnitTests/View/Mouse/MouseTests.cs index 770536e8b..c4b10fe95 100644 --- a/UnitTests/View/Mouse/MouseTests.cs +++ b/UnitTests/View/Mouse/MouseTests.cs @@ -310,9 +310,15 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews view.MouseClick += (s, e) => clickedCount++; + me.Flags = pressed; + view.NewMouseEvent (me); + Assert.Equal (0, clickedCount); + me.Handled = false; + me.Flags = pressed; view.NewMouseEvent (me); Assert.Equal (1, clickedCount); + me.Handled = false; me.Flags = released; view.NewMouseEvent (me); @@ -344,22 +350,22 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews me.Flags = pressed; view.NewMouseEvent (me); - Assert.Equal (1, clickedCount); + Assert.Equal (0, clickedCount); me.Handled = false; me.Flags = pressed; view.NewMouseEvent (me); - Assert.Equal (2, clickedCount); + Assert.Equal (1, clickedCount); me.Handled = false; me.Flags = released; view.NewMouseEvent (me); - Assert.Equal (2, clickedCount); + Assert.Equal (1, clickedCount); me.Handled = false; me.Flags = clicked; view.NewMouseEvent (me); - Assert.Equal (2, clickedCount); + Assert.Equal (1, clickedCount); view.Dispose (); Application.ResetState (ignoreDisposed: true); @@ -386,21 +392,21 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews me.Flags = MouseFlags.Button1Pressed; me.Position = me.Position with { X = 0 }; view.NewMouseEvent (me); - Assert.Equal (1, clickedCount); + Assert.Equal (0, clickedCount); me.Handled = false; // Move out of Viewport me.Flags = MouseFlags.Button1Pressed; me.Position = me.Position with { X = 1 }; view.NewMouseEvent (me); - Assert.Equal (2, clickedCount); + Assert.Equal (1, clickedCount); me.Handled = false; // Move into Viewport me.Flags = MouseFlags.Button1Pressed; me.Position = me.Position with { X = 0 }; view.NewMouseEvent (me); - Assert.Equal (3, clickedCount); + Assert.Equal (2, clickedCount); me.Handled = false; view.Dispose ();