src/macosx/native/sun/awt/CClipboard.m
Print this page
@@ -28,11 +28,10 @@
#import <Cocoa/Cocoa.h>
#import <JavaNativeFoundation/JavaNativeFoundation.h>
#include "ThreadUtilities.h"
-
static CClipboard *sClipboard = nil;
//
// CClipboardUpdate is used for mulitple calls to setData that happen before
// the model and AppKit can get back in sync.
@@ -90,10 +89,11 @@
+ (CClipboard *) sharedClipboard
{
if (sClipboard == nil) {
sClipboard = [[CClipboard alloc] init];
[[NSNotificationCenter defaultCenter] addObserver:sClipboard selector: @selector(checkPasteboard:) name: NSApplicationDidBecomeActiveNotification object: nil];
+
}
return sClipboard;
}
@@ -203,10 +203,18 @@
[self pasteboardChangedOwner:[NSPasteboard generalPasteboard]];
}
}
+- (void) javaCheckPasteboard {
+ AWT_ASSERT_NOT_APPKIT_THREAD;
+
+ [ThreadUtilities performOnMainThread:@selector(checkPasteboard:) onObject:self withObject:nil waitUntilDone:YES awtMode:YES];
+
+}
+
+
- (void)pasteboardChangedOwner:(NSPasteboard *)sender; {
AWT_ASSERT_APPKIT_THREAD;
static JNF_CLASS_CACHE(jc_CClipboard, "sun/lwawt/macosx/CClipboard");
static JNF_MEMBER_CACHE(jm_lostOwnership, jc_CClipboard, "lostSelectionOwnershipImpl", "()V");
@@ -369,6 +377,21 @@
JNF_COCOA_EXIT(env);
return returnValue;
}
+/*
+ * Class: sun_lwawt_macosx_CClipboard
+ * Method: checkPasteboard
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CClipboard_checkPasteboard
+(JNIEnv *env, jobject inObject )
+{
+ JNF_COCOA_ENTER(env);
+ //NSLog(@"Java_sun_lwawt_macosx_CClipboard_checkPasteboard");
+ [[CClipboard sharedClipboard] javaCheckPasteboard];
+
+ JNF_COCOA_EXIT(env);
+}
+