Browse Source

Prevents mouse all events, which perform any of the mouse events, to be invoked if mouseEvent.ButtonState == 0 && mouseEvent.EventFlags == 0. (#453)

* Prevents mouse all events, which perform any of the mouse events, to be invoked if mouseEvent.ButtonState == 0 && mouseEvent.EventFlags == 0.

* Prevents another View under the menu from being triggered after the button is pressed in the menu.
BDisp 5 years ago
parent
commit
3b7db8b904
2 changed files with 3 additions and 1 deletions
  1. 2 0
      Terminal.Gui/Drivers/WindowsDriver.cs
  2. 1 1
      Terminal.Gui/Views/Menu.cs

+ 2 - 0
Terminal.Gui/Drivers/WindowsDriver.cs

@@ -807,6 +807,8 @@ namespace Terminal.Gui {
 
 			} else if (mouseEvent.EventFlags == WindowsConsole.EventFlags.MouseMoved) {
 				mouseFlag = MouseFlags.ReportMousePosition;
+			} else if (mouseEvent.ButtonState == 0 && mouseEvent.EventFlags == 0) {
+				mouseFlag = 0;
 			}
 
 			mouseFlag = SetControlKeyStates (mouseEvent, mouseFlag);

+ 1 - 1
Terminal.Gui/Views/Menu.cs

@@ -458,7 +458,7 @@ namespace Terminal.Gui {
 			}
 			host.handled = false;
 			bool disabled;
-			if (me.Flags == MouseFlags.Button1Pressed || me.Flags == MouseFlags.Button1DoubleClicked) {
+			if (me.Flags == MouseFlags.Button1Clicked) {
 				disabled = false;
 				if (me.Y < 1)
 					return true;