From 70e8bdb4090ef222b39c04a36aaf2ec13e556ea3 Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Thu, 5 Dec 2013 01:22:02 -0500 Subject: [PATCH] fix line scrolling bug --- src/prompt.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/prompt.c b/src/prompt.c index 02400b3..6da95cf 100644 --- a/src/prompt.c +++ b/src/prompt.c @@ -155,10 +155,13 @@ static void prompt_onDraw(ToxWindow *self, Tox *m) mvwprintw(self->window, prt->orig_y, X_OFST, wcs_to_char(prt->line)); /* y distance between pos and len */ - int d = prt->pos < (prt->len - px2) ? (y2 - y - 1) : 0; + int d = prt->pos < (prt->len - px2) ? (y2 - y - 1) : 0; + + /* 1 if end of line is touching bottom of window, 0 otherwise */ + int bot = prt->orig_y + ((prt->len + p_ofst) / px2) == y2; /* move point of line origin up when input scrolls screen down */ - if ( (prt->scroll) && (y + d == y2-1) && ((prt->len + p_ofst) % px2 == 0) ) { + if (prt->scroll && (y + d == y2 - bot) && ((prt->len + p_ofst) % px2 == 0) ) { --prt->orig_y; prt->scroll = false; }