From 77e92ef25cc8c9a939303ccdb74985fdf0ff4e3f Mon Sep 17 00:00:00 2001 From: Sridhar Date: Fri, 4 Sep 2026 18:54:04 +1000 Subject: [PATCH] fix: paste images from the editor context menu --- src/lib/components/Editor.svelte | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/lib/components/Editor.svelte b/src/lib/components/Editor.svelte index f295305..c38383c 100644 --- a/src/lib/components/Editor.svelte +++ b/src/lib/components/Editor.svelte @@ -4996,13 +4996,25 @@ } async function ctxPaste() { - if (!editor) return; + // insertClipboardImage() saves the attachment before inserting it, so an + // unguarded paste here would leave an orphan file behind when the editor + // cannot accept the insertion. + if (!editor || $readOnly || $viewerNote) { closeTextContextMenu(); return; } try { const text = await navigator.clipboard.readText(); - if (text) editor.chain().focus().insertContent(text).run(); + if (text) { + editor.chain().focus().insertContent(text).run(); + closeTextContextMenu(); + return; + } } catch (e) { console.error('Paste failed:', e); } + // readText() only reads text/plain. An image copied from a browser has none, + // so pasting an image from this menu used to do nothing at all. Fall back to + // the same native clipboard reader the paste handler uses; it is a no-op when + // the clipboard holds no image. + await insertClipboardImage(); closeTextContextMenu(); }