diff options
Diffstat (limited to 'ext/mixed')
-rw-r--r-- | ext/mixed/js/display.js | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index c3498e85..6e41a190 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -1145,9 +1145,12 @@ class Display extends EventDispatcher { } async _getScreenshot() { + const ownerFrameId = this._ownerFrameId; + let token = null; try { - await this._setPopupVisibleOverride(false); - await promiseTimeout(1); // Wait for popup to be hidden. + if (ownerFrameId !== null) { + token = await api.crossFrame.invoke(ownerFrameId, 'setAllVisibleOverride', {value: false, priority: 0, awaitFrame: true}); + } const {format, quality} = this._options.anki.screenshot; const dataUrl = await api.screenshotGet({format, quality}); @@ -1155,7 +1158,9 @@ class Display extends EventDispatcher { return {dataUrl, format}; } finally { - await this._setPopupVisibleOverride(null); + if (token !== null) { + await api.crossFrame.invoke(ownerFrameId, 'clearAllVisibleOverride', {token}); + } } } @@ -1163,10 +1168,6 @@ class Display extends EventDispatcher { return this._options.general.resultOutputMode === 'merge' ? 0 : -1; } - _setPopupVisibleOverride(visible) { - return api.broadcastTab('popupSetVisibleOverride', {visible}); - } - _getEntry(index) { const entries = this._container.querySelectorAll('.entry'); return index >= 0 && index < entries.length ? entries[index] : null; |