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