Explorar o código

Fixes the functions of the Edit->Copy-Cut-Paste menu for the TextField that was not working well.

BDisp %!s(int64=5) %!d(string=hai) anos
pai
achega
e66c391aeb
Modificáronse 1 ficheiros con 7 adicións e 5 borrados
  1. 7 5
      Terminal.Gui/Views/TextField.cs

+ 7 - 5
Terminal.Gui/Views/TextField.cs

@@ -473,18 +473,17 @@ namespace Terminal.Gui {
 
 		public override bool MouseEvent (MouseEvent ev)
 		{
-			if (!ev.Flags.HasFlag (MouseFlags.Button1Clicked) && !ev.Flags.HasFlag (MouseFlags.Button1Pressed) &&
-				!ev.Flags.HasFlag (MouseFlags.ReportMousePosition))
+			if (!ev.Flags.HasFlag (MouseFlags.Button1Pressed) && !ev.Flags.HasFlag (MouseFlags.ReportMousePosition) &&
+				!ev.Flags.HasFlag (MouseFlags.Button1Released))
 				return false;
 
-			if (ev.Flags == MouseFlags.Button1Clicked) {
+			if (ev.Flags == MouseFlags.Button1Pressed) {
 				if (!HasFocus)
 					SuperView.SetFocus (this);
-				int x = PositionCursor (ev);
+				PositionCursor (ev);
 				if (isButtonReleased)
 					ClearAllSelection ();
 				isButtonReleased = true;
-				Application.UngrabMouse ();
 			} else if (ev.Flags == (MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition)) {
 				int x = PositionCursor (ev);
 				isButtonReleased = false;
@@ -496,6 +495,9 @@ namespace Terminal.Gui {
 				int x = PositionCursor (ev);
 				if (SelectedLength != 0)
 					ClearAllSelection ();
+			} else if (ev.Flags == MouseFlags.Button1Released) {
+				isButtonReleased = true;
+				Application.UngrabMouse ();
 			}
 
 			SetNeedsDisplay ();