From 7d71525a4a89ef1d384f2ddad07a8c91337026e6 Mon Sep 17 00:00:00 2001 From: BDisp Date: Thu, 14 Jan 2021 22:59:45 +0000 Subject: [PATCH] Fixes #1088. On WindowsDriver moving the mouse with a button pressed, when it is released, the button clicked event is fired, causing an unintentional event. --- Terminal.Gui/ConsoleDrivers/WindowsDriver.cs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs b/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs index 41ad01535..fc97bcca6 100644 --- a/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs @@ -799,6 +799,11 @@ namespace Terminal.Gui { IsButtonReleased = false; } + var p = new Point () { + X = mouseEvent.MousePosition.X, + Y = mouseEvent.MousePosition.Y + }; + if ((mouseEvent.ButtonState != 0 && mouseEvent.EventFlags == 0 && LastMouseButtonPressed == null && !IsButtonDoubleClicked) || (mouseEvent.EventFlags == WindowsConsole.EventFlags.MouseMoved && mouseEvent.ButtonState != 0 && !IsButtonReleased && !IsButtonDoubleClicked)) { @@ -854,12 +859,7 @@ namespace Terminal.Gui { IsButtonPressed = false; IsButtonReleased = true; } else if ((mouseEvent.EventFlags == 0 || mouseEvent.EventFlags == WindowsConsole.EventFlags.MouseMoved) && - IsButtonReleased) { - var p = new Point () { - X = mouseEvent.MousePosition.X, - Y = mouseEvent.MousePosition.Y - }; - //if (p == point) { + IsButtonReleased && p == point) { switch (LastMouseButtonPressed) { case WindowsConsole.ButtonState.Button1Pressed: mouseFlag = MouseFlags.Button1Clicked; @@ -877,9 +877,6 @@ namespace Terminal.Gui { X = mouseEvent.MousePosition.X, Y = mouseEvent.MousePosition.Y }; - //} else { - // mouseFlag = 0; - //} LastMouseButtonPressed = null; IsButtonReleased = false; } else if (mouseEvent.EventFlags.HasFlag (WindowsConsole.EventFlags.DoubleClick)) {