diff options
author | siikamiika <siikamiika@users.noreply.github.com> | 2020-04-10 02:48:41 +0300 |
---|---|---|
committer | siikamiika <siikamiika@users.noreply.github.com> | 2020-04-11 21:01:27 +0300 |
commit | 1df59d57b5dcbf9d3efedcb21a4d5e16524a67c1 (patch) | |
tree | 9e7bac2da9d43bcb34ebb1b5ae2c8560a3600b7a /ext | |
parent | 61a96e327a815bda7fea4c5d2096dead901fdf33 (diff) |
limit popup depth live
Diffstat (limited to 'ext')
-rw-r--r-- | ext/fg/js/frontend.js | 3 | ||||
-rw-r--r-- | ext/mixed/js/text-scanner.js | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 55d699e5..a6b24c76 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -30,7 +30,8 @@ class Frontend extends TextScanner { super( window, popup.isProxy() ? [] : [popup.getContainer()], - [(x, y) => this.popup.containsPoint(x, y)] + [(x, y) => this.popup.containsPoint(x, y)], + () => this.popup.depth <= this.options.scanning.popupNestingMaxDepth ); this.popup = popup; diff --git a/ext/mixed/js/text-scanner.js b/ext/mixed/js/text-scanner.js index a1d96320..1d6e36e0 100644 --- a/ext/mixed/js/text-scanner.js +++ b/ext/mixed/js/text-scanner.js @@ -22,11 +22,13 @@ */ class TextScanner { - constructor(node, ignoreElements, ignorePoints) { + constructor(node, ignoreElements, ignorePoints, canEnable=null) { this.node = node; this.ignoreElements = ignoreElements; this.ignorePoints = ignorePoints; + this.canEnable = canEnable; + this.ignoreNodes = null; this.scanTimerPromise = null; @@ -225,6 +227,10 @@ class TextScanner { } setEnabled(enabled) { + if (this.canEnable !== null && !this.canEnable()) { + enabled = false; + } + if (enabled) { if (!this.enabled) { this.hookEvents(); |