--- old/src/macosx/native/sun/awt/AWTView.m 2013-09-10 19:53:08.000000000 +0400 +++ new/src/macosx/native/sun/awt/AWTView.m 2013-09-10 19:53:08.000000000 +0400 @@ -307,10 +307,16 @@ } - (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 */ @@ -409,14 +415,6 @@ } -(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];