diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-09-30 21:05:34 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-30 21:05:34 -0400 |
commit | 19eb990aeb197f70a0cf46efdf9f2bdd6ed1d48c (patch) | |
tree | 5215d2e1d669e4576cd5c345e400727de93999eb /ext/js/app/popup-factory.js | |
parent | 6cf01555e7ea8d8f795188d16b2de5df58d0a110 (diff) |
DOMRect update (#1973)
* Compare using left/top rather than x/y
* Simplify
* Update Popup*.getFrameRect to return a custom structure
* Don't use x/y on DOMRect
Diffstat (limited to 'ext/js/app/popup-factory.js')
-rw-r--r-- | ext/js/app/popup-factory.js | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/ext/js/app/popup-factory.js b/ext/js/app/popup-factory.js index 8f0c2a6e..096d145e 100644 --- a/ext/js/app/popup-factory.js +++ b/ext/js/app/popup-factory.js @@ -230,7 +230,7 @@ class PopupFactory { const {elementRect} = details; if (typeof elementRect !== 'undefined') { - details.elementRect = this._convertJsonRectToDOMRect(popup, elementRect); + [elementRect.x, elementRect.y] = this._convertPopupPointToRootPagePoint(popup, elementRect.x, elementRect.y); } return await popup.showContent(details, displayDetails); @@ -281,17 +281,14 @@ class PopupFactory { return popup; } - _convertJsonRectToDOMRect(popup, jsonRect) { - const [x, y] = this._convertPopupPointToRootPagePoint(popup, jsonRect.x, jsonRect.y); - return new DOMRect(x, y, jsonRect.width, jsonRect.height); - } - _convertPopupPointToRootPagePoint(popup, x, y) { - const parent = popup.parent; + const {parent} = popup; if (parent !== null) { const popupRect = parent.getFrameRect(); - x += popupRect.x; - y += popupRect.y; + if (popupRect.valid) { + x += popupRect.x; + y += popupRect.y; + } } return [x, y]; } |