diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/bg/js/options.js | 3 | ||||
| -rw-r--r-- | ext/bg/js/settings.js | 2 | ||||
| -rw-r--r-- | ext/bg/settings.html | 4 | ||||
| -rw-r--r-- | ext/fg/js/document.js | 4 | ||||
| -rw-r--r-- | ext/fg/js/frontend.js | 2 | ||||
| -rw-r--r-- | ext/mixed/js/display.js | 2 | 
6 files changed, 12 insertions, 5 deletions
| diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index c76525b9..7d993987 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -218,7 +218,8 @@ function optionsSetDefaults(options) {              autoHideResults: false,              delay: 20,              length: 10, -            modifier: 'shift' +            modifier: 'shift', +            deepDomScan: false          },          dictionaries: {}, diff --git a/ext/bg/js/settings.js b/ext/bg/js/settings.js index c4eb4842..f5d669b2 100644 --- a/ext/bg/js/settings.js +++ b/ext/bg/js/settings.js @@ -47,6 +47,7 @@ async function formRead() {      optionsNew.scanning.selectText = $('#select-matched-text').prop('checked');      optionsNew.scanning.alphanumeric = $('#search-alphanumeric').prop('checked');      optionsNew.scanning.autoHideResults = $('#auto-hide-results').prop('checked'); +    optionsNew.scanning.deepDomScan = $('#deep-dom-scan').prop('checked');      optionsNew.scanning.delay = parseInt($('#scan-delay').val(), 10);      optionsNew.scanning.length = parseInt($('#scan-length').val(), 10);      optionsNew.scanning.modifier = $('#scan-modifier-key').val(); @@ -187,6 +188,7 @@ async function onReady() {      $('#select-matched-text').prop('checked', options.scanning.selectText);      $('#search-alphanumeric').prop('checked', options.scanning.alphanumeric);      $('#auto-hide-results').prop('checked', options.scanning.autoHideResults); +    $('#deep-dom-scan').prop('checked', options.scanning.deepDomScan);      $('#scan-delay').val(options.scanning.delay);      $('#scan-length').val(options.scanning.length);      $('#scan-modifier-key').val(options.scanning.modifier); diff --git a/ext/bg/settings.html b/ext/bg/settings.html index 778dcee0..cc140023 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -192,6 +192,10 @@                      <label><input type="checkbox" id="auto-hide-results"> Automatically hide results</label>                  </div> +                <div class="checkbox options-advanced"> +                    <label><input type="checkbox" id="deep-dom-scan"> Deep DOM scan</label> +                </div> +                  <div class="form-group options-advanced">                      <label for="scan-delay">Scan delay (in milliseconds)</label>                      <input type="number" min="1" id="scan-delay" class="form-control"> diff --git a/ext/fg/js/document.js b/ext/fg/js/document.js index 8bb857e7..727bc5d2 100644 --- a/ext/fg/js/document.js +++ b/ext/fg/js/document.js @@ -89,7 +89,7 @@ function docImposterCreate(element, isTextarea) {      return [imposter, container];  } -function docRangeFromPoint({x, y}) { +function docRangeFromPoint({x, y}, options) {      const elements = document.elementsFromPoint(x, y);      let imposter = null;      let imposterContainer = null; @@ -108,7 +108,7 @@ function docRangeFromPoint({x, y}) {          }      } -    const range = caretRangeFromPointExt(x, y, elements); +    const range = caretRangeFromPointExt(x, y, options.scanning.deepDomScan ? elements : []);      if (range !== null) {          if (imposter !== null) {              docSetImposterStyle(imposterContainer.style, 'z-index', '-2147483646'); diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 5a8d18c1..8a5c48d0 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -285,7 +285,7 @@ class Frontend {              return;          } -        const textSource = docRangeFromPoint(point); +        const textSource = docRangeFromPoint(point, this.options);          let hideResults = !textSource || !textSource.containsPoint(point);          let searched = false;          let success = false; diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index 4620e198..ebf56897 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -80,7 +80,7 @@ class Display {              const {docRangeFromPoint, docSentenceExtract} = this.dependencies;              const clickedElement = $(e.target); -            const textSource = docRangeFromPoint({x: e.clientX, y: e.clientY}); +            const textSource = docRangeFromPoint({x: e.clientX, y: e.clientY}, this.options);              if (textSource === null) {                  return false;              } |