From 7f49bd99c216216fbeb0af67cb7ca1fcdc59d7a8 Mon Sep 17 00:00:00 2001 From: dcylabs Date: Mon, 21 Aug 2017 20:27:17 +0200 Subject: [PATCH 1/3] Fixed selection issue when terminal is in nested scrolled elements --- src/utils/Mouse.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/utils/Mouse.ts b/src/utils/Mouse.ts index c61624e9..e1901f2d 100644 --- a/src/utils/Mouse.ts +++ b/src/utils/Mouse.ts @@ -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 ? element.offsetParent : element.parentElement; } + element = originalElement; + while (element && element !== self.document.documentElement) { + x += element.scrollLeft; + y += element.scrollTop; + element = element.parentElement; + } return [x, y]; } From 725ec80983638af28b4fcf29a3b96167dbbd180f Mon Sep 17 00:00:00 2001 From: dcylabs Date: Mon, 21 Aug 2017 20:27:17 +0200 Subject: [PATCH 2/3] Fixed selection issue when terminal is in nested scrolled elements --- src/utils/Mouse.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/utils/Mouse.ts b/src/utils/Mouse.ts index c61624e9..6852452a 100644 --- a/src/utils/Mouse.ts +++ b/src/utils/Mouse.ts @@ -10,6 +10,7 @@ export function getCoordsRelativeToElement(event: MouseEvent, element: HTMLEleme return null; } + const originalElement = element; let x = event.pageX; let y = event.pageY; @@ -20,6 +21,12 @@ export function getCoordsRelativeToElement(event: MouseEvent, element: HTMLEleme y -= element.offsetTop; element = 'offsetParent' in element ? element.offsetParent : element.parentElement; } + element = originalElement; + while (element && element !== self.document.documentElement) { + x += element.scrollLeft; + y += element.scrollTop; + element = element.parentElement; + } return [x, y]; } From 56da538ca01d16deed42a002af5a7e159dffbdfc Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 2 Oct 2017 11:12:33 -0700 Subject: [PATCH 3/3] Fix reference to document --- src/utils/MouseHelper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/MouseHelper.ts b/src/utils/MouseHelper.ts index 7b4a3611..b7ef09ad 100644 --- a/src/utils/MouseHelper.ts +++ b/src/utils/MouseHelper.ts @@ -27,7 +27,7 @@ export class MouseHelper { element = 'offsetParent' in element ? element.offsetParent : element.parentElement; } element = originalElement; - while (element && element !== self.document.body) { + while (element && element !== element.ownerDocument.body) { x += element.scrollLeft; y += element.scrollTop; element = element.parentElement;