Fixed selection issue when terminal is in nested scrolled elements

This commit is contained in:
dcylabs
2017-08-21 20:27:17 +02:00
parent abe32272dd
commit 7f49bd99c2
+7
View File
@@ -12,6 +12,7 @@ export function getCoordsRelativeToElement(event: MouseEvent, element: HTMLEleme
let x = event.pageX;
let y = event.pageY;
const originalElement = element;
// Converts the coordinates from being relative to the document to being
// relative to the terminal.
@@ -20,6 +21,12 @@ export function getCoordsRelativeToElement(event: MouseEvent, element: HTMLEleme
y -= element.offsetTop;
element = 'offsetParent' in element ? <HTMLElement>element.offsetParent : <HTMLElement>element.parentElement;
}
element = originalElement;
while (element && element !== self.document.documentElement) {
x += element.scrollLeft;
y += element.scrollTop;
element = <HTMLElement>element.parentElement;
}
return [x, y];
}