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;