src/macosx/native/sun/awt/AWTView.m

Print this page




 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 {