diff options
| author | Alex Yatskov <alex@foosoft.net> | 2019-09-23 17:35:36 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2019-09-23 17:35:36 -0700 | 
| commit | f4b6527ed6ed1f0f4f5a63b94766b20f3b90e6ec (patch) | |
| tree | 0d2f733c13597dd4067d3dc01e6da27f96bfe81b /ext/fg/js/popup-proxy-host.js | |
| parent | cfc6363a01ee00e89866c54709006d6f55d093de (diff) | |
| parent | f5afe590ad0730a695614b32032b7ea70b46c7b0 (diff) | |
Merge branch 'master' into testing
Diffstat (limited to 'ext/fg/js/popup-proxy-host.js')
| -rw-r--r-- | ext/fg/js/popup-proxy-host.js | 24 | 
1 files changed, 15 insertions, 9 deletions
| diff --git a/ext/fg/js/popup-proxy-host.js b/ext/fg/js/popup-proxy-host.js index fa61aeb4..396f7556 100644 --- a/ext/fg/js/popup-proxy-host.js +++ b/ext/fg/js/popup-proxy-host.js @@ -42,9 +42,9 @@ class PopupProxyHost {              showOrphaned: ({id, elementRect, options}) => this.show(id, elementRect, options),              hide: ({id}) => this.hide(id),              setVisible: ({id, visible}) => this.setVisible(id, visible), -            containsPoint: ({id, point}) => this.containsPoint(id, point), -            termsShow: ({id, elementRect, definitions, options, context}) => this.termsShow(id, elementRect, definitions, options, context), -            kanjiShow: ({id, elementRect, definitions, options, context}) => this.kanjiShow(id, elementRect, definitions, options, context), +            containsPoint: ({id, x, y}) => this.containsPoint(id, x, y), +            termsShow: ({id, elementRect, writingMode, definitions, options, context}) => this.termsShow(id, elementRect, writingMode, definitions, options, context), +            kanjiShow: ({id, elementRect, writingMode, definitions, options, context}) => this.kanjiShow(id, elementRect, writingMode, definitions, options, context),              clearAutoPlayTimer: ({id}) => this.clearAutoPlayTimer(id)          });      } @@ -108,27 +108,33 @@ class PopupProxyHost {          return popup.setVisible(visible);      } -    async containsPoint(id, point) { +    async containsPoint(id, x, y) {          const popup = this.getPopup(id); -        return await popup.containsPoint(point); +        return await popup.containsPoint(x, y);      } -    async termsShow(id, elementRect, definitions, options, context) { +    async termsShow(id, elementRect, writingMode, definitions, options, context) {          const popup = this.getPopup(id);          elementRect = this.jsonRectToDOMRect(popup, elementRect); -        return await popup.termsShow(elementRect, definitions, options, context); +        if (!PopupProxyHost.popupCanShow(popup)) { return false; } +        return await popup.termsShow(elementRect, writingMode, definitions, options, context);      } -    async kanjiShow(id, elementRect, definitions, options, context) { +    async kanjiShow(id, elementRect, writingMode, definitions, options, context) {          const popup = this.getPopup(id);          elementRect = this.jsonRectToDOMRect(popup, elementRect); -        return await popup.kanjiShow(elementRect, definitions, options, context); +        if (!PopupProxyHost.popupCanShow(popup)) { return false; } +        return await popup.kanjiShow(elementRect, writingMode, definitions, options, context);      }      async clearAutoPlayTimer(id) {          const popup = this.getPopup(id);          return popup.clearAutoPlayTimer();      } + +    static popupCanShow(popup) { +        return popup.parent === null || popup.parent.isVisible(); +    }  }  PopupProxyHost.instance = PopupProxyHost.create(); |