Browse Source

Fixes #3679. WantContinuousButtonPressed mustn't force calling GrabMouse. (#3680)

Co-authored-by: Tig <[email protected]>
BDisp 11 months ago
parent
commit
3b6abeb741
2 changed files with 10 additions and 7 deletions
  1. 1 1
      Terminal.Gui/View/View.Mouse.cs
  2. 9 6
      UnitTests/View/MouseTests.cs

+ 1 - 1
Terminal.Gui/View/View.Mouse.cs

@@ -87,7 +87,7 @@ public partial class View // Mouse APIs
             return mouseEvent.Handled = true;
             return mouseEvent.Handled = true;
         }
         }
 
 
-        if (HighlightStyle != HighlightStyle.None || WantContinuousButtonPressed)
+        if (HighlightStyle != HighlightStyle.None || (WantContinuousButtonPressed && WantMousePositionReports))
         {
         {
             if (HandlePressed (mouseEvent))
             if (HandlePressed (mouseEvent))
             {
             {

+ 9 - 6
UnitTests/View/MouseTests.cs

@@ -232,7 +232,7 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews
     [InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released)]
     [InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released)]
     [InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released)]
     [InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released)]
     [InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released)]
     [InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released)]
-    public void WantContinuousButtonPressed_True_Button_Press_Release_Clicks (MouseFlags pressed, MouseFlags released)
+    public void WantContinuousButtonPressed_True_And_WantMousePositionReports_True_Button_Press_Release_Clicks (MouseFlags pressed, MouseFlags released)
     {
     {
         var me = new MouseEvent ();
         var me = new MouseEvent ();
 
 
@@ -240,7 +240,8 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews
         {
         {
             Width = 1,
             Width = 1,
             Height = 1,
             Height = 1,
-            WantContinuousButtonPressed = true
+            WantContinuousButtonPressed = true,
+            WantMousePositionReports = true
         };
         };
 
 
         var clickedCount = 0;
         var clickedCount = 0;
@@ -263,7 +264,7 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews
     [InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)]
     [InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)]
     [InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released, MouseFlags.Button3Clicked)]
     [InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released, MouseFlags.Button3Clicked)]
     [InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released, MouseFlags.Button4Clicked)]
     [InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released, MouseFlags.Button4Clicked)]
-    public void WantContinuousButtonPressed_True_Button_Press_Release_Clicks_Repeatedly (MouseFlags pressed, MouseFlags released, MouseFlags clicked)
+    public void WantContinuousButtonPressed_True_And_WantMousePositionReports_True_Button_Press_Release_Clicks_Repeatedly (MouseFlags pressed, MouseFlags released, MouseFlags clicked)
     {
     {
         var me = new MouseEvent ();
         var me = new MouseEvent ();
 
 
@@ -271,7 +272,8 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews
         {
         {
             Width = 1,
             Width = 1,
             Height = 1,
             Height = 1,
-            WantContinuousButtonPressed = true
+            WantContinuousButtonPressed = true,
+            WantMousePositionReports = true
         };
         };
 
 
         var clickedCount = 0;
         var clickedCount = 0;
@@ -301,7 +303,7 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews
     }
     }
 
 
     [Fact]
     [Fact]
-    public void WantContinuousButtonPressed_True_Move_InViewport_OutOfViewport_Keeps_Counting ()
+    public void WantContinuousButtonPressed_True_And_WantMousePositionReports_True_Move_InViewport_OutOfViewport_Keeps_Counting ()
     {
     {
         var me = new MouseEvent ();
         var me = new MouseEvent ();
 
 
@@ -309,7 +311,8 @@ public class MouseTests (ITestOutputHelper output) : TestsAllViews
         {
         {
             Width = 1,
             Width = 1,
             Height = 1,
             Height = 1,
-            WantContinuousButtonPressed = true
+            WantContinuousButtonPressed = true,
+            WantMousePositionReports = true
         };
         };
 
 
         var clickedCount = 0;
         var clickedCount = 0;