TerminalEmulator: Do not scroll when below bottom margin

This commit is contained in:
zt515
2017-10-31 00:07:21 +08:00
parent 9c78d181a2
commit ebff85ae15

View File

@ -1295,12 +1295,20 @@ public final class TerminalEmulator {
}
private void doLinefeed() {
boolean belowScrollingRegion = mCursorRow >= mBottomMargin;
int newCursorRow = mCursorRow + 1;
if (newCursorRow >= mBottomMargin) {
scrollDownOneLine();
newCursorRow = mBottomMargin - 1;
if (belowScrollingRegion) {
// Move down (but not scroll) as long as we are above the last row.
if (mCursorRow != mRows - 1) {
setCursorRow(newCursorRow);
}
} else {
if (newCursorRow == mBottomMargin) {
scrollDownOneLine();
newCursorRow = mBottomMargin - 1;
}
setCursorRow(newCursorRow);
}
setCursorRow(newCursorRow);
}
private void continueSequence(int state) {