aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Yatskov <alex@foosoft.net>2017-02-08 09:24:14 -0800
committerAlex Yatskov <alex@foosoft.net>2017-02-08 09:24:14 -0800
commitf3fe0994f52067d7c6d1886b02afd8f0a2a15099 (patch)
tree7ed9b1bfbc0d0e9d665f91ae5297614846ebf95e
parentb3487370db3540a8cafa0346eed1e9109abe7682 (diff)
add option to disable imposters, bump version1.0.11
-rw-r--r--ext/bg/js/options-form.js2
-rw-r--r--ext/bg/js/options.js1
-rw-r--r--ext/bg/options.html4
-rw-r--r--ext/fg/js/driver.js2
-rw-r--r--ext/fg/js/util.js4
-rw-r--r--ext/manifest.json2
6 files changed, 11 insertions, 4 deletions
diff --git a/ext/bg/js/options-form.js b/ext/bg/js/options-form.js
index 00b6a63e..4470d105 100644
--- a/ext/bg/js/options-form.js
+++ b/ext/bg/js/options-form.js
@@ -37,6 +37,7 @@ function getFormData() {
optionsNew.scanning.requireShift = $('#hold-shift-to-scan').prop('checked');
optionsNew.scanning.selectText = $('#select-matched-text').prop('checked');
+ optionsNew.scanning.imposter = $('#search-form-text-fields').prop('checked');
optionsNew.scanning.delay = parseInt($('#scan-delay').val(), 10);
optionsNew.scanning.length = parseInt($('#scan-length').val(), 10);
@@ -95,6 +96,7 @@ $(document).ready(() => {
$('#hold-shift-to-scan').prop('checked', options.scanning.requireShift);
$('#select-matched-text').prop('checked', options.scanning.selectText);
+ $('#search-form-text-fields').prop('checked', options.scanning.imposter);
$('#scan-delay').val(options.scanning.delay);
$('#scan-length').val(options.scanning.length);
diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js
index a4e39e41..65712c12 100644
--- a/ext/bg/js/options.js
+++ b/ext/bg/js/options.js
@@ -31,6 +31,7 @@ function optionsSetDefaults(options) {
scanning: {
requireShift: true,
selectText: true,
+ imposter: true,
delay: 15,
length: 10
},
diff --git a/ext/bg/options.html b/ext/bg/options.html
index d9d23c6a..ebb12f15 100644
--- a/ext/bg/options.html
+++ b/ext/bg/options.html
@@ -62,6 +62,10 @@
<label><input type="checkbox" id="select-matched-text"> Select matched text</label>
</div>
+ <div class="checkbox">
+ <label><input type="checkbox" id="search-form-text-fields"> Search form text fields</label>
+ </div>
+
<div class="form-group options-advanced">
<label for="scan-delay">Scan delay</label>
<input type="number" min="1" id="scan-delay" class="form-control">
diff --git a/ext/fg/js/driver.js b/ext/fg/js/driver.js
index 97f29f89..7facda0a 100644
--- a/ext/fg/js/driver.js
+++ b/ext/fg/js/driver.js
@@ -103,7 +103,7 @@ class Driver {
return;
}
- const textSource = textSourceFromPoint(point);
+ const textSource = textSourceFromPoint(point, this.options.scanning.imposter);
if (textSource === null || !textSource.containsPoint(point)) {
if (hideNotFound) {
this.searchClear();
diff --git a/ext/fg/js/util.js b/ext/fg/js/util.js
index a7533846..641b73ac 100644
--- a/ext/fg/js/util.js
+++ b/ext/fg/js/util.js
@@ -93,12 +93,12 @@ function destroyImposters() {
}
}
-function textSourceFromPoint(point) {
+function textSourceFromPoint(point, imposter) {
const element = document.elementFromPoint(point.x, point.y);
if (element !== null) {
if (element.nodeName === 'IMG' || element.nodeName === 'BUTTON') {
return new TextSourceElement(element);
- } else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
+ } else if (imposter && (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA')) {
createImposter(element);
}
}
diff --git a/ext/manifest.json b/ext/manifest.json
index ba7e36e6..83651a62 100644
--- a/ext/manifest.json
+++ b/ext/manifest.json
@@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "Yomichan",
- "version": "1.0.10",
+ "version": "1.0.11",
"description": "Japanese dictionary with Anki integration",
"icons": {"16": "img/icon16.png", "48": "img/icon48.png", "128": "img/icon128.png"},