commit 028fff5774c0d94d4a1aad1a18ba0efa7aa429d3 from: Omar Polo date: Fri Jul 30 12:46:28 2021 UTC tweak scroll-line-up/down wrt hidden lines commit - 67c0cb403ba1e661f6ea1f1a6e02077d0aa2b06a commit + 028fff5774c0d94d4a1aad1a18ba0efa7aa429d3 blob - 48638c81dd69c3990a39403314a7501e8e8e5e10 blob + c4e4801a051319e8e36bdd92f8b4c5b8909460e9 --- cmd.c +++ cmd.c @@ -170,16 +170,25 @@ cmd_scroll_line_up(struct buffer *buffer) { struct vline *vl; - if (buffer->top_line == NULL) - return; + for (;;) { + if (buffer->top_line == NULL) + return; - if ((vl = TAILQ_PREV(buffer->top_line, vhead, vlines)) - == NULL) - return; + if ((vl = TAILQ_PREV(buffer->top_line, vhead, vlines)) + == NULL) + return; - forward_line(buffer, -1); + buffer->top_line = vl; + + if (vl->parent->flags & L_HIDDEN) + continue; + + break; + } + buffer->line_off--; - buffer->top_line = vl; + + forward_line(buffer, -1); } void @@ -188,7 +197,16 @@ cmd_scroll_line_down(struct buffer *buffer) if (!forward_line(buffer, +1)) return; - buffer->top_line = TAILQ_NEXT(buffer->top_line, vlines); + for (;;) { + if (buffer->top_line == NULL) + return; + + buffer->top_line = TAILQ_NEXT(buffer->top_line, vlines); + if (buffer->top_line->parent->flags & L_HIDDEN) + continue; + break; + } + buffer->line_off++; }