Konsole: Correct scrollUp behavior

CSI S escape sequence (SU, scroll up) ignored if number of lines to
scroll bigger than scrollable lines

REVIEW: 130133
BUG: 379318

Taken from KDE patches and adapted to TDE.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/184/head
Kurt Hindenburg 7 years ago committed by Slávek Banko
parent 838025df1c
commit 0bb1c7eb4c
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -825,10 +825,22 @@ void TEScreen::scrollUp(int n)
void TEScreen::scrollUp(int from, int n)
{
if (n <= 0 || from + n > bmargin) return;
//FIXME: make sure `tmargin', `bmargin', `from', `n' is in bounds.
moveImage(loc(0,from),loc(0,from+n),loc(columns-1,bmargin));
clearImage(loc(0,bmargin-n+1),loc(columns-1,bmargin),' ');
if (n <= 0)
{
return;
}
if (from > bmargin)
{
return;
}
if ((from + n) > bmargin)
{
n = bmargin + 1 - from;
}
//FIXME: make sure `tmargin', `bmargin', `from', `n' is in bounds.
moveImage(loc(0, from), loc(0, from+n), loc(columns, bmargin));
clearImage(loc(0, bmargin-n+1), loc(columns-1, bmargin), ' ');
}
void TEScreen::scrollDown(int n)

Loading…
Cancel
Save