diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-09-11 21:32:27 -0400 |
---|---|---|
committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-09-13 18:12:51 -0400 |
commit | bab6a13bfbc00728ed41411d83aef9f1071786ff (patch) | |
tree | 6c3c05aca7f286fd93f6fd736e706c5f14811ed1 /ext/fg/js | |
parent | ec816e676771b53f6eb2c9c68e1742830c9fd194 (diff) |
Fix nested popups being shown if parent is hidden
Diffstat (limited to 'ext/fg/js')
-rw-r--r-- | ext/fg/js/popup-proxy-host.js | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/fg/js/popup-proxy-host.js b/ext/fg/js/popup-proxy-host.js index 041900ed..1f14a06f 100644 --- a/ext/fg/js/popup-proxy-host.js +++ b/ext/fg/js/popup-proxy-host.js @@ -116,12 +116,14 @@ class PopupProxyHost { async termsShow(id, elementRect, writingMode, definitions, options, context) { const popup = this.getPopup(id); elementRect = this.jsonRectToDOMRect(popup, elementRect); + if (!PopupProxyHost.popupCanShow(popup)) { return false; } return await popup.termsShow(elementRect, writingMode, definitions, options, context); } async kanjiShow(id, elementRect, writingMode, definitions, options, context) { const popup = this.getPopup(id); elementRect = this.jsonRectToDOMRect(popup, elementRect); + if (!PopupProxyHost.popupCanShow(popup)) { return false; } return await popup.kanjiShow(elementRect, writingMode, definitions, options, context); } @@ -129,6 +131,10 @@ class PopupProxyHost { const popup = this.getPopup(id); return popup.clearAutoPlayTimer(); } + + static popupCanShow(popup) { + return popup.parent === null || popup.parent.isVisible(); + } } PopupProxyHost.instance = PopupProxyHost.create(); |