diff options
Diffstat (limited to 'ext/fg/js/frontend.js')
| -rw-r--r-- | ext/fg/js/frontend.js | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index a6df4b4c..f969df32 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -29,7 +29,7 @@ class Frontend extends TextScanner {      constructor(popup, initEventDispatcher) {          super(              window, -            popup.isProxy() ? [] : [popup.getContainer()], +            () => this.popup.isProxy() ? [] : [this.popup.getContainer()],              [(x, y) => this.popup.containsPoint(x, y)],              () => this.popup.depth <= this.options.scanning.popupNestingMaxDepth && !this._disabledOverride          ); @@ -78,6 +78,7 @@ class Frontend extends TextScanner {              }              this.initEventDispatcher.on('setDisabledOverride', this.onSetDisabledOverride.bind(this)); +            this.initEventDispatcher.on('popupChange', this.onPopupChange.bind(this));              yomichan.on('orphaned', this.onOrphaned.bind(this));              yomichan.on('optionsUpdated', this.updateOptions.bind(this)); @@ -242,6 +243,12 @@ class Frontend extends TextScanner {          }      } +    async onPopupChange({popup}) { +        this.onSearchClear(true); +        this.popup = popup; +        await popup.setOptions(this.options); +    } +      getOptionsContext() {          this.optionsContext.url = this.popup.url;          return this.optionsContext; @@ -274,7 +281,7 @@ class Frontend extends TextScanner {      }      _broadcastRootPopupInformation() { -        if (!this.popup.isProxy() && this.popup.depth === 0) { +        if (!this.popup.isProxy() && this.popup.depth === 0 && this.popup.frameId === 0) {              apiBroadcastTab('rootPopupInformation', {popupId: this.popup.id, frameId: this.popup.frameId});          }      }  |