JBR-3127: set NSWindowAllowsImplicitFullScreen=NO

fixed JBR-3127 Modal dialogs invoked from modal or floating dialogs are opened in full screen

(cherry picked from commit 0b8ff1a7e6)

JBR-3127: add possibility to load NSJavaVirtualMachine

JavaVM framework is deprecated but this class is still checked by AppKit, see https://youtrack.jetbrains.com/issue/JBR-3127#focus=Comments-27-4684465.0-0

(cherry picked from commit be6a2c4f0c)
(cherry picked from commit d690d68315)
This commit is contained in:
Artem Bochkarev
2021-02-17 14:46:33 +03:00
committed by jbrbot
parent 42741ad65d
commit 462b5326c9

View File

@@ -156,6 +156,28 @@ AWT_ASSERT_APPKIT_THREAD;
}
[super finishLaunching];
// fix for JBR-3127 Modal dialogs invoked from modal or floating dialogs are opened in full screen
[defs setBool:NO forKey:@"NSWindowAllowsImplicitFullScreen"];
// temporary possibility to load deprecated NSJavaVirtualMachine (just for testing)
// todo: remove when completely tested on BigSur
// see https://youtrack.jetbrains.com/issue/JBR-3127#focus=Comments-27-4684465.0-0
NSString * loadNSJVMProp = [PropertiesUtilities
javaSystemPropertyForKey:@"apple.awt.application.instantiate.NSJavaVirtualMachine"
withEnv:env];
if ([@"true" isCaseInsensitiveLike:loadNSJVMProp]) {
if (objc_lookUpClass("NSJavaVirtualMachine") != nil) {
NSLog(@"objc class NSJavaVirtualMachine is already registered");
} else {
Class nsjvm = objc_allocateClassPair([NSObject class], "NSJavaVirtualMachine", 0);
objc_registerClassPair(nsjvm);
NSLog(@"registered class NSJavaVirtualMachine: %@", nsjvm);
id nsjvmInst = [[nsjvm alloc] init];
NSLog(@"instantiated dummy NSJavaVirtualMachine: %@", nsjvmInst);
}
}
}