diff --git a/packages/extension-bubble-menu/src/bubble-menu-plugin.ts b/packages/extension-bubble-menu/src/bubble-menu-plugin.ts index f5ae9e50..3fed039a 100644 --- a/packages/extension-bubble-menu/src/bubble-menu-plugin.ts +++ b/packages/extension-bubble-menu/src/bubble-menu-plugin.ts @@ -34,6 +34,7 @@ export class BubbleMenuView { this.element = element this.view = view this.element.addEventListener('mousedown', this.mousedownHandler, { capture: true }) + this.view.dom.addEventListener('dragstart', this.dragstartHandler) this.editor.on('focus', this.focusHandler) this.editor.on('blur', this.blurHandler) this.createTooltip(tippyOptions) @@ -44,6 +45,10 @@ export class BubbleMenuView { this.preventHide = true } + dragstartHandler = () => { + this.hide() + } + focusHandler = () => { // we use `setTimeout` to make sure `selection` is already updated setTimeout(() => this.update(this.editor.view)) @@ -131,6 +136,7 @@ export class BubbleMenuView { destroy() { this.tippy.destroy() this.element.removeEventListener('mousedown', this.mousedownHandler) + this.view.dom.removeEventListener('dragstart', this.dragstartHandler) this.editor.off('focus', this.focusHandler) this.editor.off('blur', this.blurHandler) }