487 AwtComponent::GetTopLevelParentForWindow( 488 awtComponent->GetHWnd()))); 489 if (!blocked) { 490 awtComponent->setCursorCache(hCursor); 491 } 492 } 493 env->DeleteLocalRef(jpeer); 494 } 495 env->DeleteGlobalRef(jcomp); 496 } 497 498 if (!blocked) { 499 ::SetCursor(hCursor); // don't need WM_AWT_SETCURSOR 500 } 501 502 env->DeleteGlobalRef(((GlobalSetCursorStruct*)pStruct)->cursor); 503 } 504 505 /* 506 * Class: sun_awt_windows_WGlobalCursorManager 507 * Method: setCursor 508 * Signature: (Ljava/awt/Component;Ljava/awt/Cursor;)V 509 */ 510 JNIEXPORT void JNICALL 511 Java_sun_awt_windows_WGlobalCursorManager_setCursor(JNIEnv *env, jobject, 512 jobject, jobject cursor, jboolean u) 513 { 514 TRY; 515 516 if (cursor != NULL) { // fix for 4430302 - getCursor() returns NULL 517 GlobalSetCursorStruct data; 518 data.cursor = env->NewGlobalRef(cursor); 519 data.u = u; 520 AwtToolkit::GetInstance().InvokeFunction( 521 GlobalSetCursor, 522 (void *)&data); 523 } else { 524 JNU_ThrowNullPointerException(env, "NullPointerException"); 525 } 526 CATCH_BAD_ALLOC; 527 } 528 529 /* 530 * Class: sun_awt_windows_WGlobalCursorManager 531 * Method: findHeavyweight 532 * Signature: (II)Z 533 */ 534 JNIEXPORT jobject JNICALL 535 Java_sun_awt_windows_WGlobalCursorManager_findHeavyweightUnderCursor( 536 JNIEnv *env, jobject, jboolean useCache) 537 { 538 TRY; 539 540 if (env->EnsureLocalCapacity(1) < 0) { 541 return NULL; 542 } 543 544 jobject globalRef = (jobject)AwtToolkit::GetInstance(). 545 InvokeFunction((void*(*)(void*)) 546 AwtComponent::FindHeavyweightUnderCursor, 547 (void *)useCache); 548 jobject localRef = env->NewLocalRef(globalRef); 549 env->DeleteGlobalRef(globalRef); 550 return localRef; | 487 AwtComponent::GetTopLevelParentForWindow( 488 awtComponent->GetHWnd()))); 489 if (!blocked) { 490 awtComponent->setCursorCache(hCursor); 491 } 492 } 493 env->DeleteLocalRef(jpeer); 494 } 495 env->DeleteGlobalRef(jcomp); 496 } 497 498 if (!blocked) { 499 ::SetCursor(hCursor); // don't need WM_AWT_SETCURSOR 500 } 501 502 env->DeleteGlobalRef(((GlobalSetCursorStruct*)pStruct)->cursor); 503 } 504 505 /* 506 * Class: sun_awt_windows_WGlobalCursorManager 507 * Method: setCursorImpl 508 * Signature: (Ljava/awt/Component;Ljava/awt/Cursor;)V 509 */ 510 JNIEXPORT void JNICALL 511 Java_sun_awt_windows_WGlobalCursorManager_setCursorImpl(JNIEnv *env, jobject, 512 jobject, jobject cursor, jboolean u) 513 { 514 TRY; 515 516 if (cursor != NULL) { // fix for 4430302 - getCursor() returns NULL 517 GlobalSetCursorStruct data; 518 data.cursor = env->NewGlobalRef(cursor); 519 data.u = u; 520 AwtToolkit::GetInstance().InvokeFunction( 521 GlobalSetCursor, 522 (void *)&data); 523 } else { 524 JNU_ThrowNullPointerException(env, "NullPointerException"); 525 } 526 CATCH_BAD_ALLOC; 527 } 528 529 /* 530 * Class: sun_awt_windows_WGlobalCursorManager 531 * Method: setCursorDirect 532 * Signature: (Ljava/awt/Component;Ljava/awt/Cursor;)V 533 */ 534 JNIEXPORT void JNICALL 535 Java_sun_awt_windows_WGlobalCursorManager_setCursorDirect(JNIEnv *env, jobject, 536 jobject, jobject cursor, jboolean u) 537 { 538 TRY; 539 540 if (cursor != NULL) { 541 GlobalSetCursorStruct data; 542 data.cursor = env->NewGlobalRef(cursor); 543 data.u = u; 544 GlobalSetCursor((void *)&data); 545 } else { 546 JNU_ThrowNullPointerException(env, "NullPointerException"); 547 } 548 CATCH_BAD_ALLOC; 549 } 550 551 /* 552 * Class: sun_awt_windows_WGlobalCursorManager 553 * Method: findHeavyweight 554 * Signature: (II)Z 555 */ 556 JNIEXPORT jobject JNICALL 557 Java_sun_awt_windows_WGlobalCursorManager_findHeavyweightUnderCursor( 558 JNIEnv *env, jobject, jboolean useCache) 559 { 560 TRY; 561 562 if (env->EnsureLocalCapacity(1) < 0) { 563 return NULL; 564 } 565 566 jobject globalRef = (jobject)AwtToolkit::GetInstance(). 567 InvokeFunction((void*(*)(void*)) 568 AwtComponent::FindHeavyweightUnderCursor, 569 (void *)useCache); 570 jobject localRef = env->NewLocalRef(globalRef); 571 env->DeleteGlobalRef(globalRef); 572 return localRef; |