From: Michael D. Lowis Date: Tue, 30 May 2017 02:33:38 +0000 (-0400) Subject: added first/last line logic to page-up/dn X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=0cb1657860363730191182dd5b2e3dfc4d945ff4;p=projs%2Ftide.git added first/last line logic to page-up/dn --- diff --git a/lib/view.c b/lib/view.c index 03b46bb..870cb8a 100644 --- a/lib/view.c +++ b/lib/view.c @@ -572,7 +572,13 @@ void view_scrollpage(View* view, int move) { find_cursor(view, &col, &row); move = (move < 0 ? -1 : 1) * view->nrows; view_scroll(view, move); - size_t off = view->rows[view->nrows/2]->off; + size_t off = view->rows[view->nrows/2]->off; + size_t scrbeg = view->rows[0]->off; + size_t scrend = view->rows[view->nrows-1]->off + view->rows[view->nrows-1]->rlen - 1; + if (scrbeg == 0) + off = 0; + else if (scrend >= buf_end(&(view->buffer))) + off = view->rows[view->nrows-1]->off; // size_t off = (move == UP ? view->rows[0]->off : view->rows[view->nrows/2]->off); // if (row != SIZE_MAX && col != SIZE_MAX) {