From beeddcb11f3b351cc677346a97a9b387e352ea12 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Fri, 29 Jan 2021 23:32:47 -0500 Subject: Actually scroll to first line for "scroll to top" --- ui.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'ui.c') diff --git a/ui.c b/ui.c index c2c848f..f44073a 100644 --- a/ui.c +++ b/ui.c @@ -826,6 +826,14 @@ static void scrollPage(struct Window *window, int n) { windowScroll(window, n * (MAIN_LINES - SplitLines - MarkerLines - 1)); } +static void scrollTop(struct Window *window) { + for (size_t i = 0; i < BufferCap; ++i) { + if (!bufferHard(window->buffer, i)) continue; + scrollTo(window, BufferCap - i); + break; + } +} + static void scrollHot(struct Window *window, int dir) { for (size_t i = windowTop(window) + dir; i < BufferCap; i += dir) { const struct Line *line = bufferHard(window->buffer, i); @@ -910,7 +918,7 @@ static void keyCode(int code) { break; case KeyMetaSlash: windowShow(windows.swap); break; case KeyMetaGt: scrollTo(window, 0); - break; case KeyMetaLt: scrollTo(window, BufferCap); + break; case KeyMetaLt: scrollTop(window); break; case KeyMeta0 ... KeyMeta9: uiShowNum(code - KeyMeta0); break; case KeyMetaA: showAuto(); -- cgit 1.4.1