src/macosx/native/sun/awt/AWTView.m
Print this page
@@ -305,14 +305,20 @@
- (void) flagsChanged: (NSEvent *)event {
[self deliverJavaKeyEventHelper: event];
}
- (BOOL) performKeyEquivalent: (NSEvent *) event {
- [self deliverJavaKeyEventHelper: 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,18 +413,10 @@
[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) {