listbox.go
func (l *ListBox) EnsureVisible() {
	length := len(l.items)

	if length <= l.height || l.currSelection == -1 {
		return
	}

	diff := l.currSelection - l.topLine
	if diff >= 0 && diff < l.height {
		return
	}

	if diff < 0 {
		l.topLine = l.currSelection
	} else {
		top := l.currSelection - l.height + 1
		if length-top > l.height {
			l.topLine = top
		} else {
			l.topLine = length - l.height
		}
	}
}
func (l *ListBox) EnsureVisible() {
	length := len(l.items)

	if length <= l.height || l.currSelection == -1 {
		return
	}

	diff := l.currSelection - l.topLine
	if diff >= 0 && diff < l.height {
		return
	}

	if diff < 0 {
		l.topLine = l.currSelection
	} else {
		top := l.currSelection - l.height + 1
		if length-top > l.height {
			l.topLine = top
		} else {
			l.topLine = length - l.height
		}
	}
}
func ( l * ListBox ) EnsureVisible ( ) { length := len ( l . items ) if length <= l . height || l . currSelection == - 1 { return } diff := l . currSelection - l . topLine if diff >= 0 && diff < l . height { return } if diff < 0 { l . topLine = l . currSelection } else { top := l . currSelection - l . height + 1 if length - top > l . height { l . topLine = top } else { l . topLine = length - l . height } } }
// EnsureVisible makes the currently selected item visible and scrolls the item list if it is required
EnsureVisible makes the currently selected item visible and scrolls the item list if it is required