From ef526147ef50b119f6f3210dac6b8d047aa714be Mon Sep 17 00:00:00 2001 From: "ekaterina.itsenko" Date: Tue, 12 Aug 2025 16:51:37 +0200 Subject: [PATCH] [pycharm] PY-83300 Jupyter: Outputs: allow png copying for new macOS versions GitOrigin-RevId: d0c443a494dfde94473327a262a1e6115ae7a03b --- .../notebooks/visualization/r/inlays/ClipboardUtils.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/notebooks/visualization/src/com/intellij/notebooks/visualization/r/inlays/ClipboardUtils.kt b/notebooks/visualization/src/com/intellij/notebooks/visualization/r/inlays/ClipboardUtils.kt index 9c56ac50cfc9..769837d67ad0 100644 --- a/notebooks/visualization/src/com/intellij/notebooks/visualization/r/inlays/ClipboardUtils.kt +++ b/notebooks/visualization/src/com/intellij/notebooks/visualization/r/inlays/ClipboardUtils.kt @@ -6,6 +6,7 @@ package com.intellij.notebooks.visualization.r.inlays import com.intellij.openapi.ide.CopyPasteManager import com.intellij.openapi.util.io.FileUtil +import com.intellij.util.system.OS import java.awt.Image import java.awt.datatransfer.DataFlavor import java.awt.datatransfer.Transferable @@ -33,6 +34,10 @@ object ClipboardUtils { CopyPasteManager.getInstance().setContents(FileTransferable(listOf(tempImage))) } + // Standard copy works incorrectly on Mac, see JBR-6788, + // But it seemingly was fixed in the newer (15 and later) Mac versions + fun isIntermediateFileWorkaroundNeeded(): Boolean = OS.CURRENT == OS.macOS && !OS.CURRENT.isAtLeast(15, 0) + private class FileTransferable(private val files: List) : Transferable { override fun getTransferDataFlavors(): Array = arrayOf(DataFlavor.javaFileListFlavor) override fun isDataFlavorSupported(flavor: DataFlavor): Boolean = DataFlavor.javaFileListFlavor.equals(flavor)