aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fg/js')
-rw-r--r--ext/fg/js/frontend.js19
1 files changed, 18 insertions, 1 deletions
diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js
index bd652f3b..fa0d2086 100644
--- a/ext/fg/js/frontend.js
+++ b/ext/fg/js/frontend.js
@@ -172,7 +172,12 @@ class Frontend {
return;
}
- this.setPrimaryTouch(this.getPrimaryTouch(e.changedTouches));
+ let touch = this.getPrimaryTouch(e.changedTouches);
+ if (this.selectionContainsPoint(window.getSelection(), touch.clientX, touch.clientY)) {
+ touch = null;
+ }
+
+ this.setPrimaryTouch(touch);
}
onTouchEnd(e) {
@@ -452,6 +457,18 @@ class Frontend {
search();
}
+
+ selectionContainsPoint(selection, x, y) {
+ for (let i = 0; i < selection.rangeCount; ++i) {
+ const range = selection.getRangeAt(i);
+ for (const rect of range.getClientRects()) {
+ if (x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
}
window.yomichan_frontend = new Frontend();