浏览代码

Merge pull request #3341 from BDisp/v2_wheeledleft-wheeledright-fix_3340

Fixes #3340. Mouse ButtonShift doesn't work anymore on Windows Terminal.
Tig 1 年之前
父节点
当前提交
37c8969169
共有 2 个文件被更改,包括 17 次插入4 次删除
  1. 4 4
      Terminal.Gui/Input/Mouse.cs
  2. 13 0
      UnitTests/View/MouseTests.cs

+ 4 - 4
Terminal.Gui/Input/Mouse.cs

@@ -88,11 +88,11 @@ public enum MouseFlags
     /// <summary>Vertical button wheeled down.</summary>
     /// <summary>Vertical button wheeled down.</summary>
     WheeledDown = 0x20000000,
     WheeledDown = 0x20000000,
 
 
-    /// <summary>Vertical button wheeled up while pressing ButtonShift.</summary>
-    WheeledLeft = ButtonShift | WheeledUp,
+    /// <summary>Vertical button wheeled up while pressing ButtonCtrl.</summary>
+    WheeledLeft = ButtonCtrl | WheeledUp,
 
 
-    /// <summary>Vertical button wheeled down while pressing ButtonShift.</summary>
-    WheeledRight = ButtonShift | WheeledDown,
+    /// <summary>Vertical button wheeled down while pressing ButtonCtrl.</summary>
+    WheeledRight = ButtonCtrl | WheeledDown,
 
 
     /// <summary>Mask that captures all the events.</summary>
     /// <summary>Mask that captures all the events.</summary>
     AllEvents = 0x7ffffff
     AllEvents = 0x7ffffff

+ 13 - 0
UnitTests/View/MouseTests.cs

@@ -79,4 +79,17 @@ public class MouseTests (ITestOutputHelper output)
 
 
         Assert.Equal (expectedMoved, new Point (5, 5) == testView.Frame.Location);
         Assert.Equal (expectedMoved, new Point (5, 5) == testView.Frame.Location);
     }
     }
+
+    [Theory]
+    [InlineData (MouseFlags.WheeledUp | MouseFlags.ButtonCtrl, MouseFlags.WheeledLeft)]
+    [InlineData (MouseFlags.WheeledDown | MouseFlags.ButtonCtrl, MouseFlags.WheeledRight)]
+    public void WheeledLeft_WheeledRight (MouseFlags mouseFlags, MouseFlags expectedMouseFlagsFromEvent)
+    {
+        MouseFlags mouseFlagsFromEvent = MouseFlags.None;
+        var view = new View ();
+        view.MouseEvent += (s, e) => mouseFlagsFromEvent = e.MouseEvent.Flags;
+
+        view.OnMouseEvent (new MouseEvent () { Flags = mouseFlags });
+        Assert.Equal (mouseFlagsFromEvent, expectedMouseFlagsFromEvent);
+    }
 }
 }