diff --git a/Terminal.Gui/Input/Mouse.cs b/Terminal.Gui/Input/Mouse.cs
index f8225c9bf2..2b3f2852be 100644
--- a/Terminal.Gui/Input/Mouse.cs
+++ b/Terminal.Gui/Input/Mouse.cs
@@ -88,11 +88,11 @@ public enum MouseFlags
/// Vertical button wheeled down.
WheeledDown = 0x20000000,
- /// Vertical button wheeled up while pressing ButtonShift.
- WheeledLeft = ButtonShift | WheeledUp,
+ /// Vertical button wheeled up while pressing ButtonCtrl.
+ WheeledLeft = ButtonCtrl | WheeledUp,
- /// Vertical button wheeled down while pressing ButtonShift.
- WheeledRight = ButtonShift | WheeledDown,
+ /// Vertical button wheeled down while pressing ButtonCtrl.
+ WheeledRight = ButtonCtrl | WheeledDown,
/// Mask that captures all the events.
AllEvents = 0x7ffffff
diff --git a/UnitTests/View/MouseTests.cs b/UnitTests/View/MouseTests.cs
index bbaeab8908..cb4269b966 100644
--- a/UnitTests/View/MouseTests.cs
+++ b/UnitTests/View/MouseTests.cs
@@ -79,4 +79,17 @@ public void ButtonPressed_In_Margin_Or_Border_Starts_Drag (int marginThickness,
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);
+ }
}