106 107 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 108 AWT_ASSERT_APPKIT_THREAD; 109 110 NSCursor *cursor = [[NSCursor alloc] initWithImage:image 111 hotSpot:(NSPoint){ x, y }]; 112 setCursorOnAppKitThread(cursor); 113 [cursor release]; 114 }]; 115 116 JNF_COCOA_EXIT(env); 117 } 118 119 JNIEXPORT jobject JNICALL 120 Java_sun_lwawt_macosx_CCursorManager_nativeGetCursorPosition 121 (JNIEnv *env, jclass class) 122 { 123 jobject jpt = NULL; 124 125 JNF_COCOA_ENTER(env); 126 AWT_ASSERT_NOT_APPKIT_THREAD; 127 128 __block NSPoint pt = NSZeroPoint; 129 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 130 AWT_ASSERT_APPKIT_THREAD; 131 132 pt = ConvertNSScreenPoint(env, [NSEvent mouseLocation]); 133 }]; 134 jpt = NSToJavaPoint(env, pt); 135 136 JNF_COCOA_EXIT(env); 137 138 return jpt; 139 } 140 141 142 JNIEXPORT void JNICALL 143 Java_sun_lwawt_macosx_CCursorManager_nativeSetAllowsCursorSetInBackground 144 (JNIEnv *env, jclass class, jboolean allows) 145 { 146 147 JNF_COCOA_ENTER(env); 148 AWT_ASSERT_NOT_APPKIT_THREAD; 149 150 SEL allowsSetInBackground_SEL = @selector(javaSetAllowsCursorSetInBackground:); 151 if ([[NSCursor class] respondsToSelector:allowsSetInBackground_SEL]) { 152 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 153 NSMethodSignature *allowsSetInBackground_sig = | 106 107 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 108 AWT_ASSERT_APPKIT_THREAD; 109 110 NSCursor *cursor = [[NSCursor alloc] initWithImage:image 111 hotSpot:(NSPoint){ x, y }]; 112 setCursorOnAppKitThread(cursor); 113 [cursor release]; 114 }]; 115 116 JNF_COCOA_EXIT(env); 117 } 118 119 JNIEXPORT jobject JNICALL 120 Java_sun_lwawt_macosx_CCursorManager_nativeGetCursorPosition 121 (JNIEnv *env, jclass class) 122 { 123 jobject jpt = NULL; 124 125 JNF_COCOA_ENTER(env); 126 127 __block NSPoint pt = NSZeroPoint; 128 129 [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ 130 AWT_ASSERT_APPKIT_THREAD; 131 132 pt = ConvertNSScreenPoint(env, [NSEvent mouseLocation]); 133 }]; 134 135 jpt = NSToJavaPoint(env, pt); 136 137 JNF_COCOA_EXIT(env); 138 139 return jpt; 140 } 141 142 143 JNIEXPORT void JNICALL 144 Java_sun_lwawt_macosx_CCursorManager_nativeSetAllowsCursorSetInBackground 145 (JNIEnv *env, jclass class, jboolean allows) 146 { 147 148 JNF_COCOA_ENTER(env); 149 AWT_ASSERT_NOT_APPKIT_THREAD; 150 151 SEL allowsSetInBackground_SEL = @selector(javaSetAllowsCursorSetInBackground:); 152 if ([[NSCursor class] respondsToSelector:allowsSetInBackground_SEL]) { 153 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 154 NSMethodSignature *allowsSetInBackground_sig = |