From bf9adef6362900f35f2f93b11c32927f570c394b Mon Sep 17 00:00:00 2001 From: John Factotum <50942278+johnfactotum@users.noreply.github.com> Date: Mon, 30 Sep 2024 19:00:11 +0800 Subject: [PATCH] Paginator: react to selection only on input --- paginator.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/paginator.js b/paginator.js index 9984135..97d02db 100644 --- a/paginator.js +++ b/paginator.js @@ -585,6 +585,9 @@ export class Paginator extends HTMLElement { let isPointerSelecting = false doc.addEventListener('pointerdown', () => isPointerSelecting = true) doc.addEventListener('pointerup', () => isPointerSelecting = false) + let isKeyboardSelecting = false + doc.addEventListener('keydown', () => isKeyboardSelecting = true) + doc.addEventListener('keyup', () => isKeyboardSelecting = false) doc.addEventListener('selectionchange', () => { if (this.scrolled) return const range = this.#lastVisibleRange @@ -593,7 +596,7 @@ export class Paginator extends HTMLElement { if (!sel.rangeCount) return if (isPointerSelecting && sel.type === 'Range') checkPointerSelection(range, sel) - else { + else if (isKeyboardSelecting || sel.type === 'Caret') { const selRange = sel.getRangeAt(0).cloneRange() const backward = selectionIsBackward(sel) if (!backward) selRange.collapse()