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; 551 552 CATCH_BAD_ALLOC_RET(NULL); 553 } 554 555 /* 556 * Class: sun_awt_windows_WGlobalCursorManager 557 * Method: findComponentAt 558 * Signature: (L/java/awt/Container;II)L/java/awt/Component 559 */ 560 JNIEXPORT jobject JNICALL 561 Java_sun_awt_windows_WGlobalCursorManager_findComponentAt( 562 JNIEnv *env, jobject, jobject container, jint x, jint y) 563 { 564 TRY; 565 566 /* 567 * Call private version of Container.findComponentAt with the following 568 * flag set -- ignoreEnabled = false (i.e., don't return or recur into 569 * disabled Components); 570 * NOTE: it may return a JRootPane's glass pane as the target Component 571 */ 572 JNI_CHECK_NULL_RETURN_NULL(container, "null container"); 573 jobject comp = 574 env->CallObjectMethod(container, AwtContainer::findComponentAtMID, 575 x, y, JNI_FALSE); 576 return comp; 577 578 CATCH_BAD_ALLOC_RET(NULL); 579 } 580 581 /* 582 * Class: sun_awt_windows_WGlobalCursorManager 583 * Method: getLocationOnScreen 584 * Signature: (L/java/awt/Component;)L/java/awt/Point 585 */ 586 JNIEXPORT jobject JNICALL 587 Java_sun_awt_windows_WGlobalCursorManager_getLocationOnScreen( 588 JNIEnv *env, jobject, jobject component) 589 { 590 TRY; 591 592 JNI_CHECK_NULL_RETURN_NULL(component, "null component"); 593 jobject point = 594 env->CallObjectMethod(component, AwtComponent::getLocationOnScreenMID); 595 return point; 596 597 CATCH_BAD_ALLOC_RET(NULL); 598 } 599 600 } /* extern "C" */ | 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; 551 552 CATCH_BAD_ALLOC_RET(NULL); 553 } 554 555 /* 556 * Class: sun_awt_windows_WGlobalCursorManager 557 * Method: getLocationOnScreen 558 * Signature: (L/java/awt/Component;)L/java/awt/Point 559 */ 560 JNIEXPORT jobject JNICALL 561 Java_sun_awt_windows_WGlobalCursorManager_getLocationOnScreen( 562 JNIEnv *env, jobject, jobject component) 563 { 564 TRY; 565 566 JNI_CHECK_NULL_RETURN_NULL(component, "null component"); 567 jobject point = 568 env->CallObjectMethod(component, AwtComponent::getLocationOnScreenMID); 569 return point; 570 571 CATCH_BAD_ALLOC_RET(NULL); 572 } 573 574 } /* extern "C" */ |