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);
+}
+