src/macosx/native/sun/awt/AWTView.m
Print this page
*** 305,318 ****
- (void) flagsChanged: (NSEvent *)event {
[self deliverJavaKeyEventHelper: event];
}
- (BOOL) performKeyEquivalent: (NSEvent *) event {
- [self deliverJavaKeyEventHelper: event];
return NO;
}
/**
* Utility methods and accessors
*/
-(void) deliverJavaMouseEvent: (NSEvent *) event {
--- 305,324 ----
- (void) flagsChanged: (NSEvent *)event {
[self deliverJavaKeyEventHelper: event];
}
- (BOOL) performKeyEquivalent: (NSEvent *) event {
return NO;
}
+ // This is a SPI that AppKit apparently calls after performKeyEquivalent:
+ // returned NO. Overriding it to return YES gives us key down events for
+ // Ctrl-Tab and Ctrl-Esc (which we wouldn't have gotten otherwise).
+ - (BOOL) _wantsKeyDownForEvent:(NSEvent *)event {
+ return YES;
+ }
+
/**
* Utility methods and accessors
*/
-(void) deliverJavaMouseEvent: (NSEvent *) event {
*** 407,424 ****
[super resetCursorRects];
[self resetTrackingArea];
}
-(void) deliverJavaKeyEventHelper: (NSEvent *) event {
- static NSEvent* sLastKeyEvent = nil;
- if (event == sLastKeyEvent) {
- // The event is repeatedly delivered by keyDown: after performKeyEquivalent:
- return;
- }
- [sLastKeyEvent release];
- sLastKeyEvent = [event retain];
-
[AWTToolkit eventCountPlusPlus];
JNIEnv *env = [ThreadUtilities getJNIEnv];
jstring characters = NULL;
if ([event type] != NSFlagsChanged) {
--- 413,422 ----