src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java
Print this page
*** 132,142 ****
int jkeyCode = KeyEvent.VK_UNDEFINED;
int jkeyLocation = KeyEvent.KEY_LOCATION_UNKNOWN;
boolean postsTyped = false;
char testChar = KeyEvent.CHAR_UNDEFINED;
! char testDeadChar = 0;
if (isFlagsChangedEvent) {
int[] in = new int[] {modifierFlags, keyCode};
int[] out = new int[3]; // [jkeyCode, jkeyLocation, jkeyType]
--- 132,142 ----
int jkeyCode = KeyEvent.VK_UNDEFINED;
int jkeyLocation = KeyEvent.KEY_LOCATION_UNKNOWN;
boolean postsTyped = false;
char testChar = KeyEvent.CHAR_UNDEFINED;
! boolean isDeadChar = (chars!= null && chars.length() == 0);
if (isFlagsChangedEvent) {
int[] in = new int[] {modifierFlags, keyCode};
int[] out = new int[3]; // [jkeyCode, jkeyLocation, jkeyType]
*** 148,165 ****
} else {
if (chars != null && chars.length() > 0) {
testChar = chars.charAt(0);
}
! int[] in = new int[] {testChar, testDeadChar, modifierFlags, keyCode};
! int[] out = new int[2]; // [jkeyCode, jkeyLocation]
postsTyped = NSEvent.nsToJavaKeyInfo(in, out);
if (!postsTyped) {
testChar = KeyEvent.CHAR_UNDEFINED;
}
jkeyCode = out[0];
jkeyLocation = out[1];
jeventType = isNpapiCallback ? NSEvent.npToJavaEventType(eventType) :
NSEvent.nsToJavaEventType(eventType);
}
--- 148,169 ----
} else {
if (chars != null && chars.length() > 0) {
testChar = chars.charAt(0);
}
! int[] in = new int[] {testChar, isDeadChar ? 1 : 0, modifierFlags, keyCode};
! int[] out = new int[3]; // [jkeyCode, jkeyLocation, deadChar]
postsTyped = NSEvent.nsToJavaKeyInfo(in, out);
if (!postsTyped) {
testChar = KeyEvent.CHAR_UNDEFINED;
}
+ if(isDeadChar){
+ testChar = (char) out[2];
+ }
+
jkeyCode = out[0];
jkeyLocation = out[1];
jeventType = isNpapiCallback ? NSEvent.npToJavaEventType(eventType) :
NSEvent.nsToJavaEventType(eventType);
}