src/windows/native/sun/windows/awt_Cursor.cpp
Print this page
*** 389,408 ****
destroy_BMP(hMask);
}
DASSERT(hCursor);
- try {
AwtCursor::setPData(self, ptr_to_jlong(new AwtCursor(env, hCursor, self, xHotSpot,
yHotSpot, nW, nH, nSS, cols,
(BYTE *)andMaskPtr)));
- } catch (...) {
- if (cols) {
- delete[] cols;
- }
- throw;
- }
CATCH_BAD_ALLOC;
}
/*
* Class: sun_awt_windows_WCustomCursor
--- 389,401 ----
*** 502,516 ****
env->DeleteGlobalRef(((GlobalSetCursorStruct*)pStruct)->cursor);
}
/*
* Class: sun_awt_windows_WGlobalCursorManager
! * Method: setCursor
* Signature: (Ljava/awt/Component;Ljava/awt/Cursor;)V
*/
JNIEXPORT void JNICALL
! Java_sun_awt_windows_WGlobalCursorManager_setCursor(JNIEnv *env, jobject,
jobject, jobject cursor, jboolean u)
{
TRY;
if (cursor != NULL) { // fix for 4430302 - getCursor() returns NULL
--- 495,509 ----
env->DeleteGlobalRef(((GlobalSetCursorStruct*)pStruct)->cursor);
}
/*
* Class: sun_awt_windows_WGlobalCursorManager
! * Method: setCursorImpl
* Signature: (Ljava/awt/Component;Ljava/awt/Cursor;)V
*/
JNIEXPORT void JNICALL
! Java_sun_awt_windows_WGlobalCursorManager_setCursorImpl(JNIEnv *env, jobject,
jobject, jobject cursor, jboolean u)
{
TRY;
if (cursor != NULL) { // fix for 4430302 - getCursor() returns NULL
*** 523,532 ****
--- 516,547 ----
} else {
JNU_ThrowNullPointerException(env, "NullPointerException");
}
CATCH_BAD_ALLOC;
}
+
+ /*
+ * Class: sun_awt_windows_WGlobalCursorManager
+ * Method: setCursorDirect
+ * Signature: (Ljava/awt/Component;Ljava/awt/Cursor;)V
+ */
+ JNIEXPORT void JNICALL
+ Java_sun_awt_windows_WGlobalCursorManager_setCursorDirect(JNIEnv *env, jobject,
+ jobject, jobject cursor, jboolean u)
+ {
+ TRY;
+
+ if (cursor != NULL) {
+ GlobalSetCursorStruct data;
+ data.cursor = env->NewGlobalRef(cursor);
+ data.u = u;
+ GlobalSetCursor((void *)&data);
+ } else {
+ JNU_ThrowNullPointerException(env, "NullPointerException");
+ }
+ CATCH_BAD_ALLOC;
+ }
/*
* Class: sun_awt_windows_WGlobalCursorManager
* Method: findHeavyweight
* Signature: (II)Z