From 21dbb19565d2a0b024d3240d93a961c989504bcb Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Sat, 11 Jan 2020 14:16:58 -0500 Subject: [PATCH] Update popup position on scroll --- ext/fg/js/frontend.js | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 43cbae73..e1021ce8 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -46,6 +46,7 @@ class Frontend extends TextScanner { const {zoomFactor} = await apiGetZoom(); this._pageZoomFactor = zoomFactor; + window.addEventListener('scroll', this.onScroll.bind(this), false); window.addEventListener('resize', this.onResize.bind(this), false); const visualViewport = window.visualViewport; @@ -65,11 +66,12 @@ class Frontend extends TextScanner { } } - async onResize() { - const textSource = this.getCurrentTextSource(); - if (textSource !== null && await this.popup.isVisible()) { - this._showPopupContent(textSource); - } + onResize() { + this._updatePopupPosition(); + } + + onScroll() { + this._updatePopupPosition(); } onWindowMessage(e) { @@ -99,7 +101,7 @@ class Frontend extends TextScanner { } onVisualViewportScroll() { - // TODO + this._updatePopupPosition(); } onVisualViewportResize() { @@ -224,7 +226,14 @@ class Frontend extends TextScanner { this._contentScale = contentScale; this.popup.setContentScale(this._contentScale); - this.onResize(); + this._updatePopupPosition(); + } + + async _updatePopupPosition() { + const textSource = this.getCurrentTextSource(); + if (textSource !== null && await this.popup.isVisible()) { + this._showPopupContent(textSource); + } } static _getVisualViewportScale() {