mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Merge pull request #101 from Tyriar/fix_resize_buffer
Fix buffer corruption after resizing rows
This commit is contained in:
+28
-1
@@ -202,10 +202,26 @@
|
||||
this.on('data', options.handler);
|
||||
}
|
||||
|
||||
/**
|
||||
* The scroll position of the y cursor, ie. ybase + y = the y position within the entire
|
||||
*/
|
||||
this.ybase = 0;
|
||||
|
||||
/**
|
||||
* The scroll position of the viewport
|
||||
*/
|
||||
this.ydisp = 0;
|
||||
|
||||
/**
|
||||
* The cursor's x position after ybase
|
||||
*/
|
||||
this.x = 0;
|
||||
|
||||
/**
|
||||
* The cursor's y position after ybase
|
||||
*/
|
||||
this.y = 0;
|
||||
|
||||
this.cursorState = 0;
|
||||
this.cursorHidden = false;
|
||||
this.convertEol;
|
||||
@@ -261,6 +277,10 @@
|
||||
this.prefix = '';
|
||||
this.postfix = '';
|
||||
|
||||
/**
|
||||
* An array of all lines in the entire buffer, including the prompt. The lines are array of
|
||||
* characters which are 2-length arrays where [0] is an attribute and [1] is the character.
|
||||
*/
|
||||
this.lines = [];
|
||||
var i = this.rows;
|
||||
while (i--) {
|
||||
@@ -2628,7 +2648,14 @@
|
||||
} else if (j > y) {
|
||||
while (j-- > y) {
|
||||
if (this.lines.length > y + this.ybase) {
|
||||
this.lines.shift();
|
||||
if (this.y + this.ybase < j) {
|
||||
// The line is after the cursor, remove it
|
||||
this.lines.pop();
|
||||
} else {
|
||||
// The line is the cursor, push the viewport down
|
||||
this.ybase++;
|
||||
this.ydisp++;
|
||||
}
|
||||
}
|
||||
if (this.children.length > y) {
|
||||
el = this.children.shift();
|
||||
|
||||
Reference in New Issue
Block a user