diff --git a/plugins/text-editor-resources/src/components/TextEditorToolbar.svelte b/plugins/text-editor-resources/src/components/TextEditorToolbar.svelte index 4e42f52d6f..f1b6a156de 100644 --- a/plugins/text-editor-resources/src/components/TextEditorToolbar.svelte +++ b/plugins/text-editor-resources/src/components/TextEditorToolbar.svelte @@ -23,6 +23,7 @@ } from '@hcengineering/text-editor' import { createQuery } from '@hcengineering/presentation' import { getResource } from '@hcengineering/platform' + import { onDestroy, onMount } from 'svelte' import { inlineToolbarKey } from './extension/inlineToolbar' import TextActionButton from './TextActionButton.svelte' @@ -93,11 +94,40 @@ $: categories.forEach((category) => { category.sort((a, b) => a[0] - b[0]) }) + + let selecting = false + + function handleMouseDown (): void { + function handleMouseMove (): void { + if (!editor.state.selection.empty) { + selecting = true + document.removeEventListener('mousemove', handleMouseMove) + } + } + + function handleMouseUp (): void { + selecting = false + + document.removeEventListener('mousemove', handleMouseMove) + document.removeEventListener('mouseup', handleMouseUp) + } + + document.addEventListener('mousemove', handleMouseMove) + document.addEventListener('mouseup', handleMouseUp) + } + + onMount(() => { + document.addEventListener('mousedown', handleMouseDown) + }) + + onDestroy(() => { + document.removeEventListener('mousedown', handleMouseDown) + }) -
- {#if editor && visible && visibleActions.length > 0} -
+