]> git.mdlowis.com Git - projs/tide.git/commitdiff
added first/last line logic to page-up/dn
authorMichael D. Lowis <mike@mdlowis.com>
Tue, 30 May 2017 02:33:38 +0000 (22:33 -0400)
committerMichael D. Lowis <mike@mdlowis.com>
Tue, 30 May 2017 02:33:38 +0000 (22:33 -0400)
lib/view.c

index 03b46bb848359af3ad395edd0e893b3e47b02942..870cb8a9a8b1710bdf030fe40a4a088ef0b2377a 100644 (file)
@@ -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) {