defensive underline event coords handling in DOM renderer

This commit is contained in:
Jörg Breitbart
2023-06-04 21:06:26 +02:00
parent 118915c1f7
commit 9fed8e2a3a
+12 -2
View File
@@ -393,8 +393,18 @@ export class DomRenderer extends Disposable implements IRenderer {
}
private _setCellUnderline(x: number, x2: number, y: number, y2: number, cols: number, enabled: boolean): void {
x = this._cellToRowElements[y][x];
x2 = this._cellToRowElements[y2][x2];
const lenY = this._cellToRowElements.length - 1;
if (y < 0) x = 0;
if (y2 < 0) x2 = 0;
y = Math.max(Math.min(y, lenY), 0);
y2 = Math.max(Math.min(y2, lenY), 0);
const elemY = this._cellToRowElements[y];
const elemY2 = this._cellToRowElements[y2];
if (x >= elemY.length || x2 >= elemY2.length) {
return;
}
x = elemY[x];
x2 = elemY2[x2];
if (x === -1 || x2 === -1) {
return;