src/macosx/native/sun/awt/CCursorManager.m

Print this page

        

*** 72,82 **** JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CCursorManager_nativeSetBuiltInCursor (JNIEnv *env, jclass class, jint type, jstring name) { JNF_COCOA_ENTER(env); - AWT_ASSERT_NOT_APPKIT_THREAD; NSString *cursorName = JNFJavaToNSString(env, name); SEL cursorSelector = (type == sun_lwawt_macosx_CCursorManager_NAMED_CURSOR) ? lookupCursorSelectorForName(cursorName) : lookupCursorSelectorForType(type); if (cursorSelector == nil) { NSString *reason = [NSString stringWithFormat:@"unimplemented built-in cursor type: %d / %@", type, cursorName]; --- 72,81 ----
*** 85,97 **** if (![[NSCursor class] respondsToSelector:cursorSelector]) { [JNFException raise:env as:kNoSuchMethodException reason:"missing NSCursor selector"]; } ! [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ ! AWT_ASSERT_APPKIT_THREAD; ! setCursorOnAppKitThread([[NSCursor class] performSelector:cursorSelector]); }]; JNF_COCOA_EXIT(env); } --- 84,94 ---- if (![[NSCursor class] respondsToSelector:cursorSelector]) { [JNFException raise:env as:kNoSuchMethodException reason:"missing NSCursor selector"]; } ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ setCursorOnAppKitThread([[NSCursor class] performSelector:cursorSelector]); }]; JNF_COCOA_EXIT(env); }
*** 99,114 **** JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CCursorManager_nativeSetCustomCursor (JNIEnv *env, jclass class, jlong imgPtr, jdouble x, jdouble y) { JNF_COCOA_ENTER(env); - AWT_ASSERT_NOT_APPKIT_THREAD; NSImage *image = (NSImage *)jlong_to_ptr(imgPtr); ! [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ ! AWT_ASSERT_APPKIT_THREAD; ! NSCursor *cursor = [[NSCursor alloc] initWithImage:image hotSpot:(NSPoint){ x, y }]; setCursorOnAppKitThread(cursor); [cursor release]; }]; --- 96,108 ---- JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CCursorManager_nativeSetCustomCursor (JNIEnv *env, jclass class, jlong imgPtr, jdouble x, jdouble y) { JNF_COCOA_ENTER(env); NSImage *image = (NSImage *)jlong_to_ptr(imgPtr); ! [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ NSCursor *cursor = [[NSCursor alloc] initWithImage:image hotSpot:(NSPoint){ x, y }]; setCursorOnAppKitThread(cursor); [cursor release]; }];
*** 125,136 **** JNF_COCOA_ENTER(env); __block NSPoint pt = NSZeroPoint; [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ - AWT_ASSERT_APPKIT_THREAD; - pt = ConvertNSScreenPoint(env, [NSEvent mouseLocation]); }]; jpt = NSToJavaPoint(env, pt); --- 119,128 ----
*** 142,158 **** JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CCursorManager_nativeSetAllowsCursorSetInBackground (JNIEnv *env, jclass class, jboolean allows) { - JNF_COCOA_ENTER(env); - AWT_ASSERT_NOT_APPKIT_THREAD; SEL allowsSetInBackground_SEL = @selector(javaSetAllowsCursorSetInBackground:); if ([[NSCursor class] respondsToSelector:allowsSetInBackground_SEL]) { ! [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ NSMethodSignature *allowsSetInBackground_sig = [[NSCursor class] methodSignatureForSelector:allowsSetInBackground_SEL]; NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:allowsSetInBackground_sig]; BOOL arg = (BOOL)allows; --- 134,148 ---- JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CCursorManager_nativeSetAllowsCursorSetInBackground (JNIEnv *env, jclass class, jboolean allows) { JNF_COCOA_ENTER(env); SEL allowsSetInBackground_SEL = @selector(javaSetAllowsCursorSetInBackground:); if ([[NSCursor class] respondsToSelector:allowsSetInBackground_SEL]) { ! [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ NSMethodSignature *allowsSetInBackground_sig = [[NSCursor class] methodSignatureForSelector:allowsSetInBackground_SEL]; NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:allowsSetInBackground_sig]; BOOL arg = (BOOL)allows;