Skip to content

Commit

Permalink
Merge pull request xtermjs#4820 from Tyriar/4814
Browse files Browse the repository at this point in the history
Don't re-render after parse is the viewport did not change
  • Loading branch information
Tyriar authored Sep 20, 2023
2 parents cfc94b3 + 543b825 commit a3e933d
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/common/InputHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -495,8 +495,13 @@ export class InputHandler extends Disposable implements IInputHandler {
this._onCursorMove.fire();
}

// Refresh any dirty rows accumulated as part of parsing
this._onRequestRefreshRows.fire(this._dirtyRowTracker.start, this._dirtyRowTracker.end);
// Refresh any dirty rows accumulated as part of parsing, fire only for rows within the
// _viewport_ which is relative to ydisp, not relative to ybase.
const viewportEnd = this._dirtyRowTracker.end + (this._bufferService.buffer.ybase - this._bufferService.buffer.ydisp);
const viewportStart = this._dirtyRowTracker.start + (this._bufferService.buffer.ybase - this._bufferService.buffer.ydisp);
if (viewportStart < this._bufferService.rows) {
this._onRequestRefreshRows.fire(Math.min(viewportStart, this._bufferService.rows - 1), Math.min(viewportEnd, this._bufferService.rows - 1));
}
}

public print(data: Uint32Array, start: number, end: number): void {
Expand Down

0 comments on commit a3e933d

Please sign in to comment.