src/java.desktop/macosx/native/libsplashscreen/splashscreen_sys.m

Print this page

        

@@ -129,11 +129,18 @@
 char* SplashGetScaledImageName(const char* jar, const char* file,
                                float *scaleFactor) {
     NSAutoreleasePool *pool = [NSAutoreleasePool new];
     *scaleFactor = 1;
     char* scaledFile = nil;
-    float screenScaleFactor = 1;
+    __block float screenScaleFactor = 1;
+
+    [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
+        // initialize the display environment and connect the program
+        // to the window and the display servers
+        [NSApplicationAWT sharedApplication];
+        screenScaleFactor = [SplashNSScreen() backingScaleFactor];
+    }];
 
     if (screenScaleFactor > 1) {
         NSString *fileName = [NSString stringWithUTF8String: file];
         NSUInteger length = [fileName length];
         NSRange range = [fileName rangeOfString: @"."