From 1724e71601d3342ab9f207c78b1db9926a656cae Mon Sep 17 00:00:00 2001 From: BDisp Date: Thu, 14 Mar 2024 11:57:51 +0000 Subject: [PATCH] Using mask check instead of HasFlag method. --- Terminal.Gui/Core/View.cs | 4 ++-- UnitTests/Views/ViewTests.cs | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Terminal.Gui/Core/View.cs b/Terminal.Gui/Core/View.cs index 7ba0ae4be..c89d433d2 100644 --- a/Terminal.Gui/Core/View.cs +++ b/Terminal.Gui/Core/View.cs @@ -2894,8 +2894,8 @@ namespace Terminal.Gui { return false; } - if (mouseEvent.Flags.HasFlag (MouseFlags.Button1Clicked) || mouseEvent.Flags.HasFlag (MouseFlags.Button2Clicked) - || mouseEvent.Flags.HasFlag (MouseFlags.Button3Clicked) || mouseEvent.Flags.HasFlag (MouseFlags.Button4Clicked)) { + if ((mouseEvent.Flags & MouseFlags.Button1Clicked) != 0 || (mouseEvent.Flags & MouseFlags.Button2Clicked) != 0 + || (mouseEvent.Flags & MouseFlags.Button3Clicked) != 0 || (mouseEvent.Flags & MouseFlags.Button4Clicked) != 0) { var args = new MouseEventArgs (mouseEvent); if (OnMouseClick (args)) { diff --git a/UnitTests/Views/ViewTests.cs b/UnitTests/Views/ViewTests.cs index 251f5f459..dc366989d 100644 --- a/UnitTests/Views/ViewTests.cs +++ b/UnitTests/Views/ViewTests.cs @@ -4582,16 +4582,18 @@ Test", output); 000000", new Attribute [] { Colors.TopLevel.Normal, Colors.TopLevel.Focus }); } - [Fact] - public void OnMouseClick_Is_Only_Raised_Once () + [Theory] + [InlineData (MouseFlags.Button1Pressed, MouseFlags.Button1Released, MouseFlags.Button1Clicked)] + [InlineData (MouseFlags.Button1Pressed | MouseFlags.ButtonCtrl, MouseFlags.Button1Released | MouseFlags.ButtonCtrl, MouseFlags.Button1Clicked | MouseFlags.ButtonCtrl)] + public void OnMouseClick_Is_Only_Raised_Once (MouseFlags pressed, MouseFlags released, MouseFlags clicked) { var mouseClicks = 0; var view = new View (); view.MouseClick += (_) => mouseClicks++; - view.OnMouseEvent (new MouseEvent () { Flags = MouseFlags.Button1Pressed }); - view.OnMouseEvent (new MouseEvent () { Flags = MouseFlags.Button1Released }); - view.OnMouseEvent (new MouseEvent () { Flags = MouseFlags.Button1Clicked }); + view.OnMouseEvent (new MouseEvent () { Flags = pressed }); + view.OnMouseEvent (new MouseEvent () { Flags = released }); + view.OnMouseEvent (new MouseEvent () { Flags = clicked }); Assert.Equal (1, mouseClicks); }