From 48d3034bbf6b2fa2b25a2b396e84a4b9478d5505 Mon Sep 17 00:00:00 2001 From: BDisp Date: Wed, 29 Jul 2020 17:57:58 +0100 Subject: [PATCH] Fixes #831. Ensures ListView's SelectedItemChanged event always been invoked on enter. --- Terminal.Gui/Views/ListView.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Terminal.Gui/Views/ListView.cs b/Terminal.Gui/Views/ListView.cs index 0dff27054..bc16318d9 100644 --- a/Terminal.Gui/Views/ListView.cs +++ b/Terminal.Gui/Views/ListView.cs @@ -516,7 +516,7 @@ namespace Terminal.Gui { /// public virtual bool OnSelectedChanged () { - if (selected != lastSelectedItem) { + if (selected != lastSelectedItem && source?.Count > 0) { var value = source.ToList () [selected]; SelectedItemChanged?.Invoke (new ListViewItemEventArgs (selected, value)); lastSelectedItem = selected; @@ -550,10 +550,10 @@ namespace Terminal.Gui { } /// - public override bool OnMouseEnter (MouseEvent mouseEvent) + public override bool OnLeave (View view) { - if (source?.Count > 0 && selected >= 0 && lastSelectedItem == -1) { - lastSelectedItem = selected; + if (lastSelectedItem > -1) { + lastSelectedItem = -1; return true; } @@ -573,7 +573,7 @@ namespace Terminal.Gui { public override bool MouseEvent(MouseEvent me) { if (!me.Flags.HasFlag (MouseFlags.Button1Clicked) && !me.Flags.HasFlag (MouseFlags.Button1DoubleClicked) && - me.Flags != MouseFlags.WheeledDown && me.Flags != MouseFlags.WheeledUp) + me.Flags != MouseFlags.WheeledDown && me.Flags != MouseFlags.WheeledUp && !CanFocus) return false; if (!HasFocus)