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); }