From 2ba1a50f2ecd8c54674db8eab597e2fc09fb55a6 Mon Sep 17 00:00:00 2001 From: BDisp Date: Wed, 2 Jun 2021 11:13:08 +0100 Subject: [PATCH 1/2] Prevents top to be less than zero if source count is zero. --- Terminal.Gui/Views/ListView.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Terminal.Gui/Views/ListView.cs b/Terminal.Gui/Views/ListView.cs index 5d56a408c..08ff52f57 100644 --- a/Terminal.Gui/Views/ListView.cs +++ b/Terminal.Gui/Views/ListView.cs @@ -557,7 +557,7 @@ namespace Terminal.Gui { /// public virtual bool MoveEnd () { - if (selected != source.Count - 1) { + if (source.Count > 0 && selected != source.Count - 1) { selected = source.Count - 1; top = selected; OnSelectedChanged (); From b351b858ae55b479039023199a21cf15d5a42f5a Mon Sep 17 00:00:00 2001 From: BDisp Date: Wed, 2 Jun 2021 16:47:07 +0100 Subject: [PATCH 2/2] Only sets the top if the sum (top + selected) is bigger than the frame height. --- Terminal.Gui/Views/ListView.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Terminal.Gui/Views/ListView.cs b/Terminal.Gui/Views/ListView.cs index 08ff52f57..85274cd31 100644 --- a/Terminal.Gui/Views/ListView.cs +++ b/Terminal.Gui/Views/ListView.cs @@ -559,7 +559,9 @@ namespace Terminal.Gui { { if (source.Count > 0 && selected != source.Count - 1) { selected = source.Count - 1; - top = selected; + if (top + selected > Frame.Height - 1) { + top = selected; + } OnSelectedChanged (); SetNeedsDisplay (); }