aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-08-09 22:29:14 -0400
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-08-09 22:29:14 -0400
commit345b9c6f9dc336265f4ef8cd67cc2beb57abe354 (patch)
tree92500ba9920fa00d269ec0ac83a416ca7be48119
parent710ffb88fc75d57f92a8b33b39f62645fc26fedd (diff)
Disable focus of popup when using touch
Context menu on Firefox will not target the text properly if the focus is on the popup window.
-rw-r--r--ext/fg/js/frontend.js11
-rw-r--r--ext/mixed/js/display.js8
2 files changed, 12 insertions, 7 deletions
diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js
index fa0d2086..83fd9aff 100644
--- a/ext/fg/js/frontend.js
+++ b/ext/fg/js/frontend.js
@@ -290,7 +290,8 @@ class Frontend {
if (!hideResults && (!this.textSourceLast || !this.textSourceLast.equals(textSource))) {
searched = true;
this.pendingLookup = true;
- hideResults = !await this.searchTerms(textSource) && !await this.searchKanji(textSource);
+ const focus = (type === 'mouse');
+ hideResults = !await this.searchTerms(textSource, focus) && !await this.searchKanji(textSource, focus);
success = true;
}
} catch (e) {
@@ -313,7 +314,7 @@ class Frontend {
}
}
- async searchTerms(textSource) {
+ async searchTerms(textSource, focus) {
textSource.setEndOffset(this.options.scanning.length);
const {definitions, length} = await apiTermsFind(textSource.text());
@@ -329,7 +330,7 @@ class Frontend {
textSource.getRect(),
definitions,
this.options,
- {sentence, url}
+ {sentence, url, focus}
);
this.textSourceLast = textSource;
@@ -340,7 +341,7 @@ class Frontend {
return true;
}
- async searchKanji(textSource) {
+ async searchKanji(textSource, focus) {
textSource.setEndOffset(1);
const definitions = await apiKanjiFind(textSource.text());
@@ -354,7 +355,7 @@ class Frontend {
textSource.getRect(),
definitions,
this.options,
- {sentence, url}
+ {sentence, url, focus}
);
this.textSourceLast = textSource;
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js
index 3bb78fe1..5bd57159 100644
--- a/ext/mixed/js/display.js
+++ b/ext/mixed/js/display.js
@@ -269,7 +269,9 @@ class Display {
async termsShow(definitions, options, context) {
try {
- window.focus();
+ if (context && context.focus) {
+ window.focus();
+ }
this.definitions = definitions;
this.options = options;
@@ -321,7 +323,9 @@ class Display {
async kanjiShow(definitions, options, context) {
try {
- window.focus();
+ if (context && context.focus) {
+ window.focus();
+ }
this.definitions = definitions;
this.options = options;