< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/awt/CRobot.m

Print this page

        

*** 258,270 **** JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CRobot_keyEvent (JNIEnv *env, jobject peer, jint javaKeyCode, jboolean keyPressed) { CGKeyCode keyCode = GetCGKeyCode(javaKeyCode); - CGEventRef event = CGEventCreateKeyboardEvent(NULL, keyCode, keyPressed); if (event != NULL) { CGEventPost(kCGSessionEventTap, event); CFRelease(event); } } --- 258,296 ---- JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CRobot_keyEvent (JNIEnv *env, jobject peer, jint javaKeyCode, jboolean keyPressed) { CGKeyCode keyCode = GetCGKeyCode(javaKeyCode); CGEventRef event = CGEventCreateKeyboardEvent(NULL, keyCode, keyPressed); + + if (event != NULL) { + CGEventPost(kCGSessionEventTap, event); + CFRelease(event); + } + } + + /* + * Class: sun_lwawt_macosx_CRobot + * Method: keyEventUnicode + * Signature: (IZ)V + */ + JNIEXPORT void JNICALL + Java_sun_lwawt_macosx_CRobot_keyEventUnicode + (JNIEnv *env, jobject peer, jint key, jboolean keyPressed) + { + CGEventRef event; + UniChar uCh = key; + + // create a null keyboard event + event = CGEventCreateKeyboardEvent(NULL, 0, keyPressed); + if (event != NULL) { + /* Note that application frameworks may ignore the Unicode string in a + keyboard event and do their own translation based on the + virtual keycode and perceived event state. + */ + CGEventKeyboardSetUnicodeString(event, 1, &uCh); CGEventPost(kCGSessionEventTap, event); CFRelease(event); } }
< prev index next >