diff --git a/Terminal.Gui/Views/ScrollView.cs b/Terminal.Gui/Views/ScrollView.cs index 4f89991eb..20c7a9c75 100644 --- a/Terminal.Gui/Views/ScrollView.cs +++ b/Terminal.Gui/Views/ScrollView.cs @@ -152,13 +152,19 @@ namespace Terminal.Gui { var by2 = (position + bh) * bh / Size; Move (col, 0); - Driver.AddRune (Driver.UpArrow); + if (Bounds.Height == 1) { + Driver.AddRune (Driver.Diamond); + } else { + Driver.AddRune (Driver.UpArrow); + } if (Bounds.Height == 3) { Move (col, 1); Driver.AddRune (Driver.Diamond); } - Move (col, Bounds.Height - 1); - Driver.AddRune (Driver.DownArrow); + if (Bounds.Height > 1) { + Move (col, Bounds.Height - 1); + Driver.AddRune (Driver.DownArrow); + } } else { bh -= 2; var by1 = position * bh / Size; @@ -533,13 +539,15 @@ namespace Terminal.Gui { void ShowHideScrollBars () { - bool v = false, h = false; + bool v = false, h = false; bool p = false; if (Bounds.Height == 0 || Bounds.Height > contentSize.Height) { if (ShowVerticalScrollIndicator) { ShowVerticalScrollIndicator = false; } v = false; + } else if (Bounds.Height > 0 && Bounds.Height == contentSize.Height) { + p = true; } else { if (!ShowVerticalScrollIndicator) { ShowVerticalScrollIndicator = true; @@ -551,7 +559,22 @@ namespace Terminal.Gui { ShowHorizontalScrollIndicator = false; } h = false; + } else if (Bounds.Width > 0 && Bounds.Width == contentSize.Width && p) { + if (ShowHorizontalScrollIndicator) { + ShowHorizontalScrollIndicator = false; + } + h = false; + if (ShowVerticalScrollIndicator) { + ShowVerticalScrollIndicator = false; + } + v = false; } else { + if (p) { + if (!ShowVerticalScrollIndicator) { + ShowVerticalScrollIndicator = true; + } + v = true; + } if (!ShowHorizontalScrollIndicator) { ShowHorizontalScrollIndicator = true; }