diff options
author | June McEnroe <june@causal.agency> | 2021-01-29 23:32:47 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-01-29 23:32:47 -0500 |
commit | beeddcb11f3b351cc677346a97a9b387e352ea12 (patch) | |
tree | e98ff90b30b1c4e5e5e602ba02c36a12b1b4287e /ui.c | |
parent | Only skip setting swap in windowShow (diff) | |
download | catgirl-beeddcb11f3b351cc677346a97a9b387e352ea12.tar.gz catgirl-beeddcb11f3b351cc677346a97a9b387e352ea12.zip |
Actually scroll to first line for "scroll to top"
Diffstat (limited to '')
-rw-r--r-- | ui.c | 10 |
1 files changed, 9 insertions, 1 deletions
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(); |