src/macosx/classes/sun/lwawt/macosx/CClipboard.java
Print this page
@@ -23,12 +23,14 @@
* questions.
*/
package sun.lwawt.macosx;
+import java.awt.*;
import java.awt.datatransfer.*;
import java.io.IOException;
+import java.io.NotSerializableException;
import java.util.*;
import sun.awt.datatransfer.*;
@@ -63,36 +65,44 @@
// it to the Clipboard.
DataTransferer dataTransferer = DataTransferer.getInstance();
long[] formatArray = dataTransferer.getFormatsForTransferableAsArray(contents, flavorMap);
declareTypes(formatArray, this);
- Map<Long, DataFlavor> formatMap = DataTransferer.getInstance().getFormatsForTransferable(contents, flavorMap);
-
- for (Iterator<Long> iter = formatMap.keySet().iterator(); iter.hasNext(); ) {
- Long lFormat = iter.next();
- long format = lFormat.longValue();
- DataFlavor flavor = formatMap.get(lFormat);
+ Map<Long, DataFlavor> formatMap = dataTransferer.getFormatsForTransferable(contents, flavorMap);
+ for (Map.Entry<Long, DataFlavor> entry : formatMap.entrySet()) {
+ long format = entry.getKey();
+ DataFlavor flavor = entry.getValue();
try {
byte[] bytes = DataTransferer.getInstance().translateTransferable(contents, flavor, format);
setData(bytes, format);
} catch (IOException e) {
// Fix 4696186: don't print exception if data with
// javaJVMLocalObjectMimeType failed to serialize.
// May remove this if-check when 5078787 is fixed.
if (!(flavor.isMimeTypeEqual(DataFlavor.javaJVMLocalObjectMimeType) &&
- e instanceof java.io.NotSerializableException)) {
+ e instanceof NotSerializableException)) {
e.printStackTrace();
}
}
}
+
+ notifyChanged();
}
- private void lostSelectionOwnershipImpl() {
+ private void notifyLostOwnership() {
lostOwnershipImpl();
}
+ private static void notifyChanged() {
+ CClipboard clipboard = (CClipboard) Toolkit.getDefaultToolkit().getSystemClipboard();
+ if (!clipboard.areFlavorListenersRegistered()) {
+ return;
+ }
+ clipboard.checkChange(clipboard.getClipboardFormats());
+ }
+
protected native long[] getClipboardFormats();
protected native byte[] getClipboardData(long format) throws IOException;
// 1.5 peer method
protected void unregisterClipboardViewerChecked() {