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(); |