diff options
Diffstat (limited to 'ext/fg/js/frontend.js')
-rw-r--r-- | ext/fg/js/frontend.js | 19 |
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(); |