< prev index next >
src/java.desktop/macosx/native/libawt_lwawt/awt/AWTEvent.m
Print this page
@@ -347,11 +347,11 @@
{NSShiftKeyMask, NSBackTabCharacter, NSTabCharacter},
{0, 0, 0}
};
-unichar NsCharToJavaChar(unichar nsChar, NSUInteger modifiers)
+unichar NsCharToJavaChar(unichar nsChar, NSUInteger modifiers, BOOL spaceKeyTyped)
{
const struct _char *cur;
// Mask off just the keyboard modifiers from the event modifier mask.
NSUInteger testableFlags = (modifiers & ALL_NS_KEY_MODIFIERS_MASK);
@@ -380,10 +380,15 @@
if (nsChar >= NSUpArrowFunctionKey && nsChar <= NSModeSwitchFunctionKey) {
return java_awt_event_KeyEvent_CHAR_UNDEFINED;
}
+ // nsChar receives value 0 when SPACE key is typed.
+ if (nsChar == 0 && spaceKeyTyped == YES) {
+ return java_awt_event_KeyEvent_VK_SPACE;
+ }
+
// otherwise return character unchanged
return nsChar;
}
static unichar NsGetDeadKeyChar(unsigned short keyCode)
@@ -755,17 +760,17 @@
* Method: nsToJavaChar
* Signature: (CI)C
*/
JNIEXPORT jint JNICALL
Java_sun_lwawt_macosx_NSEvent_nsToJavaChar
-(JNIEnv *env, jclass cls, jchar nsChar, jint modifierFlags)
+(JNIEnv *env, jclass cls, jchar nsChar, jint modifierFlags, jboolean spaceKeyTyped)
{
jchar javaChar = 0;
JNF_COCOA_ENTER(env);
- javaChar = NsCharToJavaChar(nsChar, modifierFlags);
+ javaChar = NsCharToJavaChar(nsChar, modifierFlags, spaceKeyTyped);
JNF_COCOA_EXIT(env);
return javaChar;
}
< prev index next >