src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java
Print this page
*** 121,131 ****
/**
* Handles key events.
*/
void handleKeyEvent(int eventType, int modifierFlags, String chars,
! short keyCode) {
boolean isFlagsChangedEvent =
isNpapiCallback ? (eventType == CocoaConstants.NPCocoaEventFlagsChanged) :
(eventType == CocoaConstants.NSFlagsChanged);
int jeventType = KeyEvent.KEY_PRESSED;
--- 121,131 ----
/**
* Handles key events.
*/
void handleKeyEvent(int eventType, int modifierFlags, String chars,
! short keyCode, boolean needsKeyTyped) {
boolean isFlagsChangedEvent =
isNpapiCallback ? (eventType == CocoaConstants.NPCocoaEventFlagsChanged) :
(eventType == CocoaConstants.NSFlagsChanged);
int jeventType = KeyEvent.KEY_PRESSED;
*** 177,186 ****
--- 177,190 ----
long when = System.currentTimeMillis();
peer.dispatchKeyEvent(jeventType, when, jmodifiers,
jkeyCode, javaChar, jkeyLocation);
+ // Current browser may be sending input events, so don't
+ // post the KEY_TYPED here.
+ postsTyped &= needsKeyTyped;
+
// That's the reaction on the PRESSED (not RELEASED) event as it comes to
// appear in MacOSX.
// Modifier keys (shift, etc) don't want to send TYPED events.
// On the other hand we don't want to generate keyTyped events
// for clipboard related shortcuts like Meta + [CVX]
*** 189,194 ****
--- 193,213 ----
peer.dispatchKeyEvent(KeyEvent.KEY_TYPED, when, jmodifiers,
KeyEvent.VK_UNDEFINED, javaChar,
KeyEvent.KEY_LOCATION_UNKNOWN);
}
}
+
+ void handleInputEvent(String text) {
+ if (text != null) {
+ int index = 0, length = text.length();
+ char c;
+ while (index < length) {
+ c = text.charAt(index);
+ peer.dispatchKeyEvent(KeyEvent.KEY_TYPED,
+ System.currentTimeMillis(),
+ 0, KeyEvent.VK_UNDEFINED, c,
+ KeyEvent.KEY_LOCATION_UNKNOWN);
+ index++;
+ }
+ }
+ }
}