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

Print this page




 424 }
 425 
 426 - (void) resetCursorRects {
 427     [super resetCursorRects];
 428     [self resetTrackingArea];
 429 }
 430 
 431 -(void) deliverJavaKeyEventHelper: (NSEvent *) event {
 432     static NSEvent* sLastKeyEvent = nil;
 433     if (event == sLastKeyEvent) {
 434         // The event is repeatedly delivered by keyDown: after performKeyEquivalent:
 435         return;
 436     }
 437     [sLastKeyEvent release];
 438     sLastKeyEvent = [event retain];
 439 
 440     [AWTToolkit eventCountPlusPlus];
 441     JNIEnv *env = [ThreadUtilities getJNIEnv];
 442 
 443     jstring characters = NULL;

 444     if ([event type] != NSFlagsChanged) {
 445         characters = JNFNSToJavaString(env, [event characters]);

 446     }
 447 
 448     static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/NSEvent");
 449     static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IISLjava/lang/String;)V");
 450     jobject jevent = JNFNewObject(env, jctor_NSEvent,
 451                                   [event type],
 452                                   [event modifierFlags],
 453                                   [event keyCode],
 454                                   characters);

 455 
 456     static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView");
 457     static JNF_MEMBER_CACHE(jm_deliverKeyEvent, jc_PlatformView,
 458                             "deliverKeyEvent", "(Lsun/lwawt/macosx/NSEvent;)V");
 459     JNFCallVoidMethod(env, m_cPlatformView, jm_deliverKeyEvent, jevent);
 460 
 461     if (characters != NULL) {
 462         (*env)->DeleteLocalRef(env, characters);
 463     }
 464 }
 465 
 466 -(void) deliverResize: (NSRect) rect {
 467     jint x = (jint) rect.origin.x;
 468     jint y = (jint) rect.origin.y;
 469     jint w = (jint) rect.size.width;
 470     jint h = (jint) rect.size.height;
 471     JNIEnv *env = [ThreadUtilities getJNIEnv];
 472     static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView");
 473     static JNF_MEMBER_CACHE(jm_deliverResize, jc_PlatformView, "deliverResize", "(IIII)V");
 474     JNFCallVoidMethod(env, m_cPlatformView, jm_deliverResize, x,y,w,h);




 424 }
 425 
 426 - (void) resetCursorRects {
 427     [super resetCursorRects];
 428     [self resetTrackingArea];
 429 }
 430 
 431 -(void) deliverJavaKeyEventHelper: (NSEvent *) event {
 432     static NSEvent* sLastKeyEvent = nil;
 433     if (event == sLastKeyEvent) {
 434         // The event is repeatedly delivered by keyDown: after performKeyEquivalent:
 435         return;
 436     }
 437     [sLastKeyEvent release];
 438     sLastKeyEvent = [event retain];
 439 
 440     [AWTToolkit eventCountPlusPlus];
 441     JNIEnv *env = [ThreadUtilities getJNIEnv];
 442 
 443     jstring characters = NULL;
 444     jstring charactersIgnoringModifiers = NULL;
 445     if ([event type] != NSFlagsChanged) {
 446         characters = JNFNSToJavaString(env, [event characters]);
 447         charactersIgnoringModifiers = JNFNSToJavaString(env, [event charactersIgnoringModifiers]);
 448     }
 449 
 450     static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/NSEvent");
 451     static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IISLjava/lang/String;Ljava/lang/String;)V");
 452     jobject jevent = JNFNewObject(env, jctor_NSEvent,
 453                                   [event type],
 454                                   [event modifierFlags],
 455                                   [event keyCode],
 456                                   characters,
 457                                   charactersIgnoringModifiers);
 458 
 459     static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView");
 460     static JNF_MEMBER_CACHE(jm_deliverKeyEvent, jc_PlatformView,
 461                             "deliverKeyEvent", "(Lsun/lwawt/macosx/NSEvent;)V");
 462     JNFCallVoidMethod(env, m_cPlatformView, jm_deliverKeyEvent, jevent);
 463 
 464     if (characters != NULL) {
 465         (*env)->DeleteLocalRef(env, characters);
 466     }
 467 }
 468 
 469 -(void) deliverResize: (NSRect) rect {
 470     jint x = (jint) rect.origin.x;
 471     jint y = (jint) rect.origin.y;
 472     jint w = (jint) rect.size.width;
 473     jint h = (jint) rect.size.height;
 474     JNIEnv *env = [ThreadUtilities getJNIEnv];
 475     static JNF_CLASS_CACHE(jc_PlatformView, "sun/lwawt/macosx/CPlatformView");
 476     static JNF_MEMBER_CACHE(jm_deliverResize, jc_PlatformView, "deliverResize", "(IIII)V");
 477     JNFCallVoidMethod(env, m_cPlatformView, jm_deliverResize, x,y,w,h);