From: Michael D. Lowis Date: Tue, 30 May 2017 12:35:07 +0000 (-0400) Subject: Added column tracking to page up/dn X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=f26ca5e35babece5c4b1960fe18bbb331af4c10d;p=projs%2Ftide.git Added column tracking to page up/dn --- diff --git a/lib/view.c b/lib/view.c index 870cb8a..66d20b8 100644 --- a/lib/view.c +++ b/lib/view.c @@ -573,12 +573,13 @@ void view_scrollpage(View* view, int move) { move = (move < 0 ? -1 : 1) * view->nrows; view_scroll(view, move); 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 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) { @@ -587,6 +588,12 @@ void view_scrollpage(View* view, int move) { // off = view->rows[row]->off + view->rows[row]->rlen - 1; // } + if (row != SIZE_MAX && col != SIZE_MAX) + if (col >= view->rows[view->nrows/2]->rlen) + off = view->rows[view->nrows/2]->off + view->rows[view->nrows/2]->rlen - 1; + else + off += col; + view_jumpto(view, false, off); view->sync_needed = false; }