< prev index next >
src/java.desktop/macosx/native/libawt_lwawt/awt/CRobot.m
Print this page
@@ -258,13 +258,39 @@
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 >