diff --git a/packages/text-annotator/src/SelectionHandler.ts b/packages/text-annotator/src/SelectionHandler.ts index c0b27d29..54fa78bd 100644 --- a/packages/text-annotator/src/SelectionHandler.ts +++ b/packages/text-annotator/src/SelectionHandler.ts @@ -173,6 +173,9 @@ export const createSelectionHandler = ( * to the initial pointerdown event and remember the button */ const onPointerDown = (evt: PointerEvent) => { + const annotatable = !(evt.target as Node).parentElement?.closest(NOT_ANNOTATABLE_SELECTOR); + if (!annotatable) return; + /** * Cloning the event to prevent it from accidentally being `undefined` * @see https://github.com/recogito/text-annotator-js/commit/65d13f3108c429311cf8c2523f6babbbc946013d#r144033948 @@ -182,11 +185,8 @@ export const createSelectionHandler = ( }; const onPointerUp = (evt: PointerEvent) => { - const evtTarget = evt.target as Node; - - const annotatable = !evtTarget.parentElement?.closest(NOT_ANNOTATABLE_SELECTOR); - if (!annotatable || !isLeftClick) - return; + const annotatable = !(evt.target as Node).parentElement?.closest(NOT_ANNOTATABLE_SELECTOR); + if (!annotatable || !isLeftClick) return; // Logic for selecting an existing annotation const userSelect = () => { @@ -223,21 +223,8 @@ export const createSelectionHandler = ( // Just a click, not a selection if (sel?.isCollapsed && timeDifference < CLICK_TIMEOUT) { - - /** - * Don't process the collapsed range as the click - * when it ends on the document root element, `html`. - * - * It can happen when user quickly drags from the - * `input`/`textarea` to the browser's toolbar. - * - * @see https://github.com/recogito/text-annotator-js/issues/147 - */ - if (evtTarget !== document.documentElement) { - currentTarget = undefined; - userSelect(); - } - + currentTarget = undefined; + userSelect(); } else if (currentTarget && store.getAnnotation(currentTarget.annotation)) { selection.userSelect(currentTarget.annotation, evt); } diff --git a/packages/text-annotator/src/TextAnnotator.ts b/packages/text-annotator/src/TextAnnotator.ts index e4ebd9f3..e65a877d 100644 --- a/packages/text-annotator/src/TextAnnotator.ts +++ b/packages/text-annotator/src/TextAnnotator.ts @@ -120,7 +120,7 @@ export const createTextAnnotator = ( const setPresenceProvider = (provider: PresenceProvider) => { if (provider) { - highlightRenderer.setPainter(createPresencePainter(container, provider, opts.presence)); + highlightRenderer.setPainter(createPresencePainter(provider, opts.presence)); provider.on('selectionChange', () => highlightRenderer.redraw()); } }; diff --git a/packages/text-annotator/src/index.ts b/packages/text-annotator/src/index.ts index 8cfb3b69..b28a4f41 100644 --- a/packages/text-annotator/src/index.ts +++ b/packages/text-annotator/src/index.ts @@ -1,8 +1,9 @@ +export * from './api'; export * from './highlight'; export * from './model'; export * from './state'; export * from './utils'; -export * from './presence/PresencePainterOptions'; +export * from './presence'; export * from './SelectionHandler'; export * from './TextAnnotator'; export * from './TextAnnotatorOptions'; diff --git a/packages/text-annotator/src/presence/PresencePainter.ts b/packages/text-annotator/src/presence/PresencePainter.ts index 541d189d..c192b4db 100644 --- a/packages/text-annotator/src/presence/PresencePainter.ts +++ b/packages/text-annotator/src/presence/PresencePainter.ts @@ -22,7 +22,6 @@ const createCanvas = () => { } export const createPresencePainter = ( - container: HTMLElement, provider: PresenceProvider, opts: PresencePainterOptions = {} ): HighlightPainter => {