From 4facc3cad70fed86828ce7700e8fe11b3504bc0f Mon Sep 17 00:00:00 2001 From: V Date: Wed, 27 Sep 2023 04:13:40 +0200 Subject: [PATCH] webContextMenus: support pasting images --- src/plugins/webContextMenus.web/index.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/plugins/webContextMenus.web/index.ts b/src/plugins/webContextMenus.web/index.ts index 4cdbcd98..26ae19c5 100644 --- a/src/plugins/webContextMenus.web/index.ts +++ b/src/plugins/webContextMenus.web/index.ts @@ -218,10 +218,19 @@ export default definePlugin({ }, async paste() { - const text = await navigator.clipboard.readText(); + const clip = (await navigator.clipboard.read())[0]; + if (!clip) return; const data = new DataTransfer(); - data.setData("text/plain", text); + for (const type of clip.types) { + if (type === "image/png") { + const file = new File([await clip.getType(type)], "unknown.png", { type }); + data.items.add(file); + } else if (type === "text/plain") { + const blob = await clip.getType(type); + data.setData(type, await blob.text()); + } + } document.dispatchEvent( new ClipboardEvent("paste", {