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 ----