]> git.mdlowis.com Git - projs/tide.git/commitdiff
Added column tracking to page up/dn
authorMichael D. Lowis <mike.lowis@gentex.com>
Tue, 30 May 2017 12:35:07 +0000 (08:35 -0400)
committerMichael D. Lowis <mike.lowis@gentex.com>
Tue, 30 May 2017 12:35:07 +0000 (08:35 -0400)
lib/view.c

index 870cb8a9a8b1710bdf030fe40a4a088ef0b2377a..66d20b8c49022d257136ae474acf1f00129270ea 100644 (file)
@@ -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;
 }