From 86be737508d3148c90ea04d702fab30fdfb464d2 Mon Sep 17 00:00:00 2001 From: siikamiika Date: Sat, 7 Mar 2020 03:52:36 +0200 Subject: [PATCH] fix popup containsPoint offset --- ext/fg/js/popup-proxy-host.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ext/fg/js/popup-proxy-host.js b/ext/fg/js/popup-proxy-host.js index bef2cb16..b9a5617c 100644 --- a/ext/fg/js/popup-proxy-host.js +++ b/ext/fg/js/popup-proxy-host.js @@ -116,7 +116,8 @@ class PopupProxyHost { async _onApiContainsPoint({id, x, y}) { const popup = this._getPopup(id); - return await popup.containsPoint(x, y); + const rootPagePoint = PopupProxyHost._convertPopupPointToRootPagePoint(popup, x, y); + return await popup.containsPoint(...rootPagePoint); } async _onApiShowContent({id, elementRect, writingMode, type, details}) { @@ -152,14 +153,17 @@ class PopupProxyHost { } static _convertJsonRectToDOMRect(popup, jsonRect) { - let x = jsonRect.x; - let y = jsonRect.y; + const [x, y] = PopupProxyHost._convertPopupPointToRootPagePoint(popup, jsonRect.x, jsonRect.y); + return new DOMRect(x, y, jsonRect.width, jsonRect.height); + } + + static _convertPopupPointToRootPagePoint(popup, x, y) { if (popup.parent !== null) { const popupRect = popup.parent.getContainerRect(); x += popupRect.x; y += popupRect.y; } - return new DOMRect(x, y, jsonRect.width, jsonRect.height); + return [x, y]; } static _popupCanShow(popup) {