11.03.15 18:40, Sergey Bylokhov wrote:
Hello.
Please review the fix for jdk 8/9.
Lots of issues(hangs or focus lost) occurred after we call
NSScreen.backingScaleFactor on a Appkit Thread in time of splash
screen initialization.
This is a regression of two fixes:
https://bugs.openjdk.java.net/browse/JDK-8043869
https://bugs.openjdk.java.net/browse/JDK-8049198
Current issue occures after the second fix.
Bug: https://bugs.openjdk.java.net/browse/JDK-8074668
As a fix I suggest to disable functionality which was added in
JDK-8049198 <https://bugs.openjdk.java.net/browse/JDK-8049198> and
JDK-8043869 <https://bugs.openjdk.java.net/browse/JDK-8043869>.
Because if I try to revert them back I should change more files which
I consider will be danger.
The fix which broke the splash screen:
http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/fb3f4212427f
Suggested fix:
src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m
@@ -129,15 +129,11 @@
char* SplashGetScaledImageName(const char* jar, const char* file,
float *scaleFactor) {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
*scaleFactor = 1;
char* scaledFile = nil;
- __block float screenScaleFactor = 1;
-
- [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
- screenScaleFactor = [SplashNSScreen() backingScaleFactor];
- }];
+ float screenScaleFactor = 1;
if (screenScaleFactor > 1) {
NSString *fileName = [NSString stringWithUTF8String: file];
NSUInteger length = [fileName length];
NSRange range = [fileName rangeOfString: @"."
--
Best regards, Sergey.
--
Best regards, Sergey.