367 } 368 369 - (void) resetCursorRects { 370 [super resetCursorRects]; 371 [self resetTrackingRect]; 372 } 373 374 -(void) deliverJavaKeyEventHelper: (NSEvent *) event { 375 static id sUnretainedLastKeyEvent = nil; 376 if (event == sUnretainedLastKeyEvent) { 377 // The event is repeatedly delivered by keyDown: after performKeyEquivalent: 378 return; 379 } 380 sUnretainedLastKeyEvent = event; 381 382 [AWTToolkit eventCountPlusPlus]; 383 JNIEnv *env = [ThreadUtilities getJNIEnv]; 384 385 jstring characters = NULL; 386 if ([event type] != NSFlagsChanged) { 387 characters = JNFNSToJavaString(env, [event characters]); 388 } 389 390 static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/event/NSEvent"); 391 static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IISLjava/lang/String;)V"); 392 jobject jevent = JNFNewObject(env, jctor_NSEvent, 393 [event type], 394 [event modifierFlags], 395 [event keyCode], 396 characters); 397 398 static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView"); 399 static JNF_MEMBER_CACHE(jm_deliverKeyEvent, jc_PlatformView, 400 "deliverKeyEvent", "(Lsun/lwawt/macosx/event/NSEvent;)V"); 401 JNFCallVoidMethod(env, m_cPlatformView, jm_deliverKeyEvent, jevent); 402 403 if (characters != NULL) { 404 (*env)->DeleteLocalRef(env, characters); 405 } 406 } 407 408 - (void) drawRect:(NSRect)dirtyRect { | 367 } 368 369 - (void) resetCursorRects { 370 [super resetCursorRects]; 371 [self resetTrackingRect]; 372 } 373 374 -(void) deliverJavaKeyEventHelper: (NSEvent *) event { 375 static id sUnretainedLastKeyEvent = nil; 376 if (event == sUnretainedLastKeyEvent) { 377 // The event is repeatedly delivered by keyDown: after performKeyEquivalent: 378 return; 379 } 380 sUnretainedLastKeyEvent = event; 381 382 [AWTToolkit eventCountPlusPlus]; 383 JNIEnv *env = [ThreadUtilities getJNIEnv]; 384 385 jstring characters = NULL; 386 if ([event type] != NSFlagsChanged) { 387 388 int modifierFlags = [event modifierFlags]; 389 // process key char for mnemonics 390 if((modifierFlags & NSControlKeyMask != 0) && (modifierFlags & NSAlternateKeyMask !=0)){ 391 characters = JNFNSToJavaString(env, [event charactersIgnoringModifiers]); 392 }else{ 393 characters = JNFNSToJavaString(env, [event characters]); 394 } 395 } 396 397 static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/event/NSEvent"); 398 static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IISLjava/lang/String;)V"); 399 jobject jevent = JNFNewObject(env, jctor_NSEvent, 400 [event type], 401 [event modifierFlags], 402 [event keyCode], 403 characters); 404 405 static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView"); 406 static JNF_MEMBER_CACHE(jm_deliverKeyEvent, jc_PlatformView, 407 "deliverKeyEvent", "(Lsun/lwawt/macosx/event/NSEvent;)V"); 408 JNFCallVoidMethod(env, m_cPlatformView, jm_deliverKeyEvent, jevent); 409 410 if (characters != NULL) { 411 (*env)->DeleteLocalRef(env, characters); 412 } 413 } 414 415 - (void) drawRect:(NSRect)dirtyRect { |