From 6034eb9b30c3fe01ece9079c84c91ba9c6184518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Mon, 14 Jun 2021 18:28:27 +0200 Subject: [PATCH] fix: hide bubble menu on drag, fix #1443 --- packages/extension-bubble-menu/src/bubble-menu-plugin.ts | 6 ++++++ 1 file changed, 6 insertions(+) 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) }