Paginator: react to selection only on input

This commit is contained in:
John Factotum
2024-09-30 19:00:11 +08:00
parent 916dfb13ac
commit bf9adef636
+4 -1
View File
@@ -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()