diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-macos-arm64.dylib b/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-macos-arm64.dylib index 96b21340..5d683a24 100755 Binary files a/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-macos-arm64.dylib and b/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-macos-arm64.dylib differ diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-macos-x86_64.dylib b/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-macos-x86_64.dylib index 80c44180..b356acc9 100755 Binary files a/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-macos-x86_64.dylib and b/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-macos-x86_64.dylib differ diff --git a/flatlaf-natives/flatlaf-natives-macos/src/main/headers/JNIUtils.h b/flatlaf-natives/flatlaf-natives-macos/src/main/headers/JNIUtils.h index c4b4e58d..f0a8604c 100644 --- a/flatlaf-natives/flatlaf-natives-macos/src/main/headers/JNIUtils.h +++ b/flatlaf-natives/flatlaf-natives-macos/src/main/headers/JNIUtils.h @@ -29,15 +29,21 @@ #endif +#define JNI_COCOA_TRY() \ + @try { + +#define JNI_COCOA_CATCH() \ + } @catch( NSException *ex ) { \ + NSLog( @"Exception: %@\nReason: %@\nUser Info: %@\nStack: %@", \ + [ex name], [ex reason], [ex userInfo], [ex callStackSymbols] ); \ + } + #define JNI_COCOA_ENTER() \ @autoreleasepool { \ - @try { + JNI_COCOA_TRY() #define JNI_COCOA_EXIT() \ - } @catch( NSException *ex ) { \ - NSLog( @"Exception: %@\nReason: %@\nUser Info: %@\nStack: %@", \ - [ex name], [ex reason], [ex userInfo], [ex callStackSymbols] ); \ - } \ + JNI_COCOA_CATCH() \ } diff --git a/flatlaf-natives/flatlaf-natives-macos/src/main/objcpp/MacWindow.mm b/flatlaf-natives/flatlaf-natives-macos/src/main/objcpp/MacWindow.mm index bddb9326..6676a4b2 100644 --- a/flatlaf-natives/flatlaf-natives-macos/src/main/objcpp/MacWindow.mm +++ b/flatlaf-natives/flatlaf-natives-macos/src/main/objcpp/MacWindow.mm @@ -100,10 +100,13 @@ JNIEXPORT jboolean JNICALL Java_com_formdev_flatlaf_ui_FlatNativeMacLibrary_setW return FALSE; [FlatJNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ + JNI_COCOA_TRY() + nsWindow.hasShadow = YES; nsWindow.contentView.wantsLayer = YES; nsWindow.contentView.layer.cornerRadius = radius; nsWindow.contentView.layer.masksToBounds = YES; + nsWindow.contentView.layer.opaque = NO; nsWindow.contentView.layer.borderWidth = borderWidth; if( borderWidth > 0 ) { @@ -120,6 +123,8 @@ JNIEXPORT jboolean JNICALL Java_com_formdev_flatlaf_ui_FlatNativeMacLibrary_setW [nsWindow.contentView.layer removeAllAnimations]; [nsWindow invalidateShadow]; + + JNI_COCOA_CATCH() }]; return TRUE; @@ -157,6 +162,8 @@ JNIEXPORT jboolean JNICALL Java_com_formdev_flatlaf_ui_FlatNativeMacLibrary_setW WindowData* windowData = getWindowData( nsWindow, true ); [FlatJNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ + JNI_COCOA_TRY() + // NSLog( @"\n%@\n\n", [nsWindow.contentView.superview _subtreeDescription] ); // add/remove toolbar @@ -235,6 +242,8 @@ JNIEXPORT jboolean JNICALL Java_com_formdev_flatlaf_ui_FlatNativeMacLibrary_setW windowData.didExitFullScreenObserver = nil; } } + + JNI_COCOA_CATCH() }]; return TRUE;