From d2a2ff1f99b3a926634773bc837c33417a088507 Mon Sep 17 00:00:00 2001 From: BDisp Date: Tue, 19 Mar 2024 23:42:44 +0000 Subject: [PATCH] Fixes #3340. Mouse ButtonShift doesn't work anymore on Windows Terminal. --- Terminal.Gui/Input/Mouse.cs | 8 ++++---- UnitTests/View/MouseTests.cs | 13 +++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Terminal.Gui/Input/Mouse.cs b/Terminal.Gui/Input/Mouse.cs index f8225c9bf..2b3f2852b 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 bbaeab890..cb4269b96 100644 --- a/UnitTests/View/MouseTests.cs +++ b/UnitTests/View/MouseTests.cs @@ -79,4 +79,17 @@ public class MouseTests (ITestOutputHelper output) 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); + } }