mirror of
https://github.com/wavetermdev/xterm.js.git
synced 2026-08-05 13:43:48 -07:00
Fix row removal in reflowLarger
This commit is contained in:
+2
-11
@@ -292,21 +292,12 @@ export class Buffer implements IBuffer {
|
||||
}
|
||||
|
||||
// Clear out remaining cells or fragments could remain
|
||||
// TODO: @jerch can this be a const?
|
||||
// TODO: @jerch can fillCharData be a const?
|
||||
const fillCharData: CharData = [DEFAULT_ATTR, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE];
|
||||
wrappedLines[destLineIndex].replaceCells(destCol, newCols, fillCharData);
|
||||
|
||||
// Work backwards and remove any rows at the end that only contain null cells
|
||||
let countToRemove = 0;
|
||||
for (let i = wrappedLines.length - 1; i > 0; i--) {
|
||||
if (wrappedLines[i].getTrimmedLength() === 0) {
|
||||
countToRemove++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove rows and adjust cursor
|
||||
const countToRemove = wrappedLines.length - destLineIndex - 1;
|
||||
if (countToRemove > 0) {
|
||||
this.lines.splice(y + wrappedLines.length - countToRemove, countToRemove);
|
||||
let removing = countToRemove;
|
||||
|
||||
+3
-3
@@ -228,8 +228,8 @@ export class BufferLine implements IBufferLine {
|
||||
}
|
||||
}
|
||||
|
||||
public resize(cols: number, fillCharData: CharData, shrink: boolean = false): void {
|
||||
if (cols === this.length || (!shrink && cols < this.length)) {
|
||||
public resize(cols: number, fillCharData: CharData): void {
|
||||
if (cols === this.length) {
|
||||
return;
|
||||
}
|
||||
if (cols > this.length) {
|
||||
@@ -245,7 +245,7 @@ export class BufferLine implements IBufferLine {
|
||||
for (let i = this.length; i < cols; ++i) {
|
||||
this.set(i, fillCharData);
|
||||
}
|
||||
} else if (shrink) {
|
||||
} else {
|
||||
if (cols) {
|
||||
const data = new Uint32Array(cols * CELL_SIZE);
|
||||
data.set(this._data.subarray(0, cols * CELL_SIZE));
|
||||
|
||||
Reference in New Issue
Block a user