diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/bg/data/options-schema.json | 20 | ||||
| -rw-r--r-- | ext/bg/js/options.js | 4 | ||||
| -rw-r--r-- | ext/bg/js/settings/scan-inputs-controller.js | 4 | ||||
| -rw-r--r-- | ext/bg/settings.html | 2 | ||||
| -rw-r--r-- | ext/mixed/js/text-scanner.js | 17 | 
5 files changed, 36 insertions, 11 deletions
| diff --git a/ext/bg/data/options-schema.json b/ext/bg/data/options-schema.json index 80f8d782..0b0a9259 100644 --- a/ext/bg/data/options-schema.json +++ b/ext/bg/data/options-schema.json @@ -352,11 +352,13 @@                                                  },                                                  "options": {                                                      "showAdvanced": false, +                                                    "scanOnTouchMove": true,                                                      "scanOnPenHover": true,                                                      "scanOnPenPress": true,                                                      "scanOnPenRelease": false,                                                      "searchTerms": true, -                                                    "searchKanji": true +                                                    "searchKanji": true, +                                                    "preventTouchScrolling": false                                                  }                                              },                                              { @@ -369,11 +371,13 @@                                                  },                                                  "options": {                                                      "showAdvanced": false, +                                                    "scanOnTouchMove": true,                                                      "scanOnPenHover": true,                                                      "scanOnPenPress": true,                                                      "scanOnPenRelease": false,                                                      "searchTerms": true, -                                                    "searchKanji": true +                                                    "searchKanji": true, +                                                    "preventTouchScrolling": true                                                  }                                              }                                          ], @@ -419,17 +423,23 @@                                                      "type": "object",                                                      "required": [                                                          "showAdvanced", +                                                        "scanOnTouchMove",                                                          "scanOnPenHover",                                                          "scanOnPenPress",                                                          "scanOnPenRelease",                                                          "searchTerms", -                                                        "searchKanji" +                                                        "searchKanji", +                                                        "preventTouchScrolling"                                                      ],                                                      "properties": {                                                          "showAdvanced": {                                                              "type": "boolean",                                                              "default": false                                                          }, +                                                        "scanOnTouchMove": { +                                                            "type": "boolean", +                                                            "default": true +                                                        },                                                          "scanOnPenHover": {                                                              "type": "boolean",                                                              "default": true @@ -449,6 +459,10 @@                                                          "searchKanji": {                                                              "type": "boolean",                                                              "default": true +                                                        }, +                                                        "preventTouchScrolling": { +                                                            "type": "boolean", +                                                            "default": true                                                          }                                                      }                                                  } diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index cf24645a..f83dad6d 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -522,11 +522,13 @@ class OptionsUtil {          }          const createInputDefaultOptions = () => ({              showAdvanced: false, +            scanOnTouchMove: true,              scanOnPenHover: true,              scanOnPenPress: true,              scanOnPenRelease: false,              searchTerms: true, -            searchKanji: true +            searchKanji: true, +            preventTouchScrolling: true          });          for (const {options: profileOptions} of options.profiles) {              profileOptions.general.usePopupWindow = false; diff --git a/ext/bg/js/settings/scan-inputs-controller.js b/ext/bg/js/settings/scan-inputs-controller.js index b6498d7c..0606d142 100644 --- a/ext/bg/js/settings/scan-inputs-controller.js +++ b/ext/bg/js/settings/scan-inputs-controller.js @@ -99,11 +99,13 @@ class ScanInputsController {                  types: {mouse: true, touch: false, pen: false},                  options: {                      showAdvanced: false, +                    scanOnTouchMove: true,                      scanOnPenHover: true,                      scanOnPenPress: true,                      scanOnPenRelease: false,                      searchTerms: true, -                    searchKanji: true +                    searchKanji: true, +                    preventTouchScrolling: true                  }              }]          }]); diff --git a/ext/bg/settings.html b/ext/bg/settings.html index 8dea0245..86535af4 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -484,9 +484,11 @@                                  <div class="scan-input-type-list-container form-control"><div>                                      <div><label class="scan-input-toggle"><input type="checkbox" class="scan-input-settings-checkbox" data-property="options.searchTerms"><span>Search for terms</span></label></div>                                      <div><label class="scan-input-toggle"><input type="checkbox" class="scan-input-settings-checkbox" data-property="options.searchKanji"><span>Search for kanji</span></label></div> +                                    <div><label class="scan-input-toggle"><input type="checkbox" class="scan-input-settings-checkbox" data-property="options.scanOnTouchMove"><span>Scan on touch move</span></label></div>                                      <div><label class="scan-input-toggle"><input type="checkbox" class="scan-input-settings-checkbox" data-property="options.scanOnPenHover"><span>Scan on pen hover</span></label></div>                                      <div><label class="scan-input-toggle"><input type="checkbox" class="scan-input-settings-checkbox" data-property="options.scanOnPenPress"><span>Scan on pen press</span></label></div>                                      <div><label class="scan-input-toggle"><input type="checkbox" class="scan-input-settings-checkbox" data-property="options.scanOnPenRelease"><span>Scan on pen release</span></label></div> +                                    <div><label class="scan-input-toggle"><input type="checkbox" class="scan-input-settings-checkbox" data-property="options.preventTouchScrolling"><span>Prevent touch/pen scrolling</span></label></div>                                  </div></div>                              </div></div>                          </div> diff --git a/ext/mixed/js/text-scanner.js b/ext/mixed/js/text-scanner.js index b8d4faf5..fe20cb1c 100644 --- a/ext/mixed/js/text-scanner.js +++ b/ext/mixed/js/text-scanner.js @@ -120,12 +120,12 @@ class TextScanner extends EventDispatcher {                  include,                  exclude,                  types, -                options: {scanOnPenHover, scanOnPenPress, scanOnPenRelease, searchTerms, searchKanji} +                options: {scanOnTouchMove, scanOnPenHover, scanOnPenPress, scanOnPenRelease, searchTerms, searchKanji, preventTouchScrolling}              }) => ({                  include: this._getInputArray(include),                  exclude: this._getInputArray(exclude),                  types: this._getInputTypeSet(types), -                options: {scanOnPenHover, scanOnPenPress, scanOnPenRelease, searchTerms, searchKanji} +                options: {scanOnTouchMove, scanOnPenHover, scanOnPenPress, scanOnPenRelease, searchTerms, searchKanji, preventTouchScrolling}              }));          }          if (typeof deepContentScan === 'boolean') { @@ -392,7 +392,9 @@ class TextScanner extends EventDispatcher {          const inputInfo = this._getMatchingInputGroupFromEvent(e, type);          if (inputInfo === null) { return; } -        this._searchAt(primaryTouch.clientX, primaryTouch.clientY, type, 'touchMove', inputInfo); +        if (inputInfo.input.options.scanOnTouchMove) { +            this._searchAt(primaryTouch.clientX, primaryTouch.clientY, type, 'touchMove', inputInfo); +        }          e.preventDefault(); // Disable scroll      } @@ -497,7 +499,7 @@ class TextScanner extends EventDispatcher {          }          const inputInfo = this._getMatchingInputGroupFromEvent(e, 'touch'); -        if (inputInfo === null) { return; } +        if (inputInfo === null || !inputInfo.input.options.scanOnTouchMove) { return; }          this._searchAt(e.clientX, e.clientY, 'touch', 'touchMove', inputInfo);      } @@ -748,6 +750,7 @@ class TextScanner extends EventDispatcher {          if (inputInfo === null) { return; }          const textSourceCurrentPrevious = this._textSourceCurrent !== null ? this._textSourceCurrent.clone() : null; +        const preventScroll = inputInfo.input.options.preventTouchScrolling;          await this._searchAt(x, y, type, cause, inputInfo); @@ -755,7 +758,7 @@ class TextScanner extends EventDispatcher {              this._textSourceCurrent !== null &&              !this._textSourceCurrent.equals(textSourceCurrentPrevious)          ) { -            this._preventScroll = true; +            this._preventScroll = preventScroll;              this._preventNextContextMenu = true;              this._preventNextMouseDown = true;          } @@ -776,13 +779,15 @@ class TextScanner extends EventDispatcher {              return;          } +        const preventScroll = inputInfo.input.options.preventTouchScrolling; +          await this._searchAt(x, y, type, cause, inputInfo);          if (              prevent &&              this._textSourceCurrent !== null          ) { -            this._preventScroll = true; +            this._preventScroll = preventScroll;              this._preventNextContextMenu = true;              this._preventNextMouseDown = true;              this._preventNextClick = true; |