--- old/src/macosx/native/sun/awt/CWrapper.m 2012-03-02 18:15:24.000000000 +0400 +++ new/src/macosx/native/sun/awt/CWrapper.m 2012-03-02 18:15:24.000000000 +0400 @@ -482,6 +482,32 @@ } /* + * Class: sun_lwawt_macosx_CWrapper$NSWindow + * Method: toggleFullScreen + * Signature: (JJ)V + */ +JNIEXPORT void JNICALL +Java_sun_lwawt_macosx_CWrapper_00024NSWindow_toggleFullScreen +(JNIEnv *env, jclass cls, jlong windowPtr, jlong senderPtr) +{ +JNF_COCOA_ENTER(env); + + NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr); + SEL toggleFullScreenSelector = @selector(toggleFullScreen:); + + if ([window respondsToSelector:toggleFullScreenSelector]) { + id sender = (id)jlong_to_ptr(senderPtr); + + [JNFRunLoop performOnMainThread:toggleFullScreenSelector + on:window + withObject:sender + waitUntilDone:NO]; + } + +JNF_COCOA_EXIT(env); +} + +/* * Class: sun_lwawt_macosx_CWrapper$NSView * Method: addSubview * Signature: (JJ)V @@ -569,46 +595,6 @@ /* * Class: sun_lwawt_macosx_CWrapper$NSView - * Method: enterFullScreenMode - * Signature: (J)V - */ -JNIEXPORT void JNICALL -Java_sun_lwawt_macosx_CWrapper_00024NSView_enterFullScreenMode -(JNIEnv *env, jclass cls, jlong viewPtr) -{ -JNF_COCOA_ENTER(env); - - NSView *view = (NSView *)jlong_to_ptr(viewPtr); - [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ - NSScreen *screen = [[view window] screen]; - NSDictionary *opts = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], NSFullScreenModeAllScreens, nil]; - [view enterFullScreenMode:screen withOptions:opts]; - }]; - -JNF_COCOA_EXIT(env); -} - -/* - * Class: sun_lwawt_macosx_CWrapper$NSView - * Method: exitFullScreenMode - * Signature: (J)V - */ -JNIEXPORT void JNICALL -Java_sun_lwawt_macosx_CWrapper_00024NSView_exitFullScreenMode -(JNIEnv *env, jclass cls, jlong viewPtr) -{ -JNF_COCOA_ENTER(env); - - NSView *view = (NSView *)jlong_to_ptr(viewPtr); - [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ - [view exitFullScreenModeWithOptions:nil]; - }]; - -JNF_COCOA_EXIT(env); -} - -/* - * Class: sun_lwawt_macosx_CWrapper$NSView * Method: window * Signature: (J)J */ @@ -716,6 +702,46 @@ } /* + * Class: sun_lwawt_macosx_CWrapper$NSScreen + * Method: screens + * Signature: (I)J + */ +JNIEXPORT jlong JNICALL +Java_sun_lwawt_macosx_CWrapper_00024NSScreen_screens +(JNIEnv *env, jclass cls, jint i) +{ + __block jlong screenPtr = 0L; + +JNF_COCOA_ENTER(env); + + [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ + screenPtr = ptr_to_jlong([[[NSScreen screens] objectAtIndex:i] retain]); + }]; + +JNF_COCOA_EXIT(env); + + return screenPtr; +} + +/* + * Class: sun_lwawt_macosx_CWrapper$NSMenu + * Method: setMenuBarVisible + * Signature: (Z)V + */ +JNIEXPORT jlong JNICALL +Java_sun_lwawt_macosx_CWrapper_00024NSMenu_setMenuBarVisible +(JNIEnv *env, jclass cls, jboolean visible) +{ +JNF_COCOA_ENTER(env); + + [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ + [NSMenu setMenuBarVisible: visible]; + }]; + +JNF_COCOA_EXIT(env); +} + +/* * Class: sun_lwawt_macosx_CWrapper$NSColor * Method: clearColor * Signature: ()J