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