Selaa lähdekoodia

Fixes #840. Learned that we shouldn't mixing mouse flags with other properties.

BDisp 5 vuotta sitten
vanhempi
commit
c73ca62582
1 muutettua tiedostoa jossa 10 lisäystä ja 5 poistoa
  1. 10 5
      Terminal.Gui/Views/ListView.cs

+ 10 - 5
Terminal.Gui/Views/ListView.cs

@@ -573,14 +573,16 @@ namespace Terminal.Gui {
 		public override bool MouseEvent(MouseEvent me)
 		public override bool MouseEvent(MouseEvent me)
 		{
 		{
 			if (!me.Flags.HasFlag (MouseFlags.Button1Clicked) && !me.Flags.HasFlag (MouseFlags.Button1DoubleClicked) &&
 			if (!me.Flags.HasFlag (MouseFlags.Button1Clicked) && !me.Flags.HasFlag (MouseFlags.Button1DoubleClicked) &&
-				me.Flags != MouseFlags.WheeledDown && me.Flags != MouseFlags.WheeledUp && !CanFocus)
+				me.Flags != MouseFlags.WheeledDown && me.Flags != MouseFlags.WheeledUp)
 				return false;
 				return false;
 
 
-			if (!HasFocus)
+			if (!HasFocus && CanFocus) {
 				SetFocus ();
 				SetFocus ();
+			}
 
 
-			if (source == null)
+			if (source == null) {
 				return false;
 				return false;
+			}
 
 
 			if (me.Flags == MouseFlags.WheeledDown) {
 			if (me.Flags == MouseFlags.WheeledDown) {
 				MoveDown ();
 				MoveDown ();
@@ -590,8 +592,9 @@ namespace Terminal.Gui {
 				return true;
 				return true;
 			}
 			}
 
 
-			if (me.Y + top >= source.Count)
+			if (me.Y + top >= source.Count) {
 				return true;
 				return true;
+			}
 
 
 			selected = top + me.Y;
 			selected = top + me.Y;
 			if (AllowsAll ()) {
 			if (AllowsAll ()) {
@@ -601,8 +604,10 @@ namespace Terminal.Gui {
 			}
 			}
 			OnSelectedChanged ();
 			OnSelectedChanged ();
 			SetNeedsDisplay ();
 			SetNeedsDisplay ();
-			if (me.Flags == MouseFlags.Button1DoubleClicked)
+			if (me.Flags == MouseFlags.Button1DoubleClicked) {
 				OnOpenSelectedItem ();
 				OnOpenSelectedItem ();
+			}
+
 			return true;
 			return true;
 		}
 		}
 	}
 	}