Add scan on touch move and prevent touch scroll options (#871)
* Add scanOnTouchMove/preventTouchScrolling scanning input options * Add settings controls * Support scanOnTouchMove in TextScanner * Support preventTouchScrolling in TextScanner
This commit is contained in:
parent
73dd578821
commit
cdd649ea3d
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
}
|
||||
}]
|
||||
}]);
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
|
@ -333,11 +333,13 @@ function createProfileOptionsUpdatedTestData1() {
|
||||
},
|
||||
options: {
|
||||
showAdvanced: false,
|
||||
scanOnTouchMove: true,
|
||||
scanOnPenHover: true,
|
||||
scanOnPenPress: true,
|
||||
scanOnPenRelease: false,
|
||||
searchTerms: true,
|
||||
searchKanji: true
|
||||
searchKanji: true,
|
||||
preventTouchScrolling: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -350,11 +352,13 @@ function createProfileOptionsUpdatedTestData1() {
|
||||
},
|
||||
options: {
|
||||
showAdvanced: false,
|
||||
scanOnTouchMove: true,
|
||||
scanOnPenHover: true,
|
||||
scanOnPenPress: true,
|
||||
scanOnPenRelease: false,
|
||||
searchTerms: true,
|
||||
searchKanji: true
|
||||
searchKanji: true,
|
||||
preventTouchScrolling: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -367,11 +371,13 @@ function createProfileOptionsUpdatedTestData1() {
|
||||
},
|
||||
options: {
|
||||
showAdvanced: false,
|
||||
scanOnTouchMove: true,
|
||||
scanOnPenHover: true,
|
||||
scanOnPenPress: true,
|
||||
scanOnPenRelease: false,
|
||||
searchTerms: true,
|
||||
searchKanji: true
|
||||
searchKanji: true,
|
||||
preventTouchScrolling: true
|
||||
}
|
||||
}
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user