Fix clear leaving viewport in a bad state

Fixes #4603
This commit is contained in:
Daniel Imms
2023-08-02 11:30:43 -07:00
parent acf53f69e0
commit 91c08ed48e
+4 -1
View File
@@ -1230,8 +1230,11 @@ export class Terminal extends CoreTerminal implements ITerminal {
for (let i = 1; i < this.rows; i++) {
this.buffer.lines.push(this.buffer.getBlankLine(DEFAULT_ATTR_DATA));
}
this.refresh(0, this.rows - 1);
// IMPORTANT: Fire scroll event before viewport is reset. This ensures embedders get the clear
// scroll event and that the viewport's state will be valid for immediate writes.
this._onScroll.fire({ position: this.buffer.ydisp, source: ScrollSource.TERMINAL });
this.viewport?.reset();
this.refresh(0, this.rows - 1);
}
/**