Compare commits

..

1 Commits

Author SHA1 Message Date
Vyacheslav Moklev
f0831a9d90 Fix for IDEA-214698 2019-05-27 15:45:37 +03:00
65 changed files with 340 additions and 680 deletions

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel>
<module name="java-gradle.main" target="11" />
<module name="java-gradle.test" target="11" />
</bytecodeTargetLevel>
</component>
</project>

20
jb/project/java-gradle/.idea/gradle.xml generated Normal file
View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="/usr/share/gradle" />
<option name="gradleJvm" value="11" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
<option name="useAutoImport" value="true" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>
</project>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.twelvemonkeys.common:common-image:3.3.2">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-image/3.3.2/9c975152864050c6dbb7226ca1100694f0aa099d/common-image-3.3.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-image/3.3.2/e6fb35a9825421ec5a634af328e22546992d536d/common-image-3.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.twelvemonkeys.common:common-io:3.3.2">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-io/3.3.2/e00b1c744993864d3c8dc698ba7d356122019398/common-io-3.3.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-io/3.3.2/dbb242585fdfd353dc4c2c0e8b3d8b0383dffbb2/common-io-3.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.twelvemonkeys.common:common-lang:3.3.2">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-lang/3.3.2/ffbc5e05208c5c9cb43052438294c3ec5546aecf/common-lang-3.3.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.common/common-lang/3.3.2/b695db345614a2b9344fd43a44d9ce722df4b39/common-lang-3.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.twelvemonkeys.imageio:imageio-core:3.3.2">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-core/3.3.2/8def41c756831dde3c23f2d525e5667cfbfa1847/imageio-core-3.3.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-core/3.3.2/abcb2beaf21364467afe0e33824dce5730bef0c3/imageio-core-3.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.twelvemonkeys.imageio:imageio-metadata:3.3.2">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-metadata/3.3.2/b8a31725bde0dc6f4e6b01711784f5ca0a2275f3/imageio-metadata-3.3.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-metadata/3.3.2/6fc3b223c81afbd4b829e2c924c096aab3ed0e9e/imageio-metadata-3.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.twelvemonkeys.imageio:imageio-tiff:3.3.2">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-tiff/3.3.2/9bea1214eae7d287dc0c685fb6be75102318d080/imageio-tiff-3.3.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.twelvemonkeys.imageio/imageio-tiff/3.3.2/cae5b3540dc01889dc9560db86f5f61bdc253107/imageio-tiff-3.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: junit:junit:4.12">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: net.java.dev.jna:jna:4.4.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/cb208278274bf12ebdb56c61bd7407e6f774d65a/jna-4.4.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/9d45d3dc35711eef7267d8b4fc2c0dc482ef9fd2/jna-4.4.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.apache.commons:commons-lang3:3.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.0/8873bd0bb5cb9ee37f1b04578eb7e26fcdd44cb0/commons-lang3-3.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.0/d48f964b56a931ec2712ce5d411a40d114a69753/commons-lang3-3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.hamcrest:hamcrest-core:1.3">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.hamcrest:hamcrest-library:1.3">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/47a7ee46628ab7133129cd7cef1e92657bc275e/hamcrest-library-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>

6
jb/project/java-gradle/.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/classes" />
</component>
</project>

11
jb/project/java-gradle/.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/java-gradle.iml" filepath="$PROJECT_DIR$/.idea/modules/java-gradle.iml" />
<module fileurl="file://$PROJECT_DIR$/java-gradle.iml" filepath="$PROJECT_DIR$/java-gradle.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/java-gradle.main.iml" filepath="$PROJECT_DIR$/.idea/modules/java-gradle.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/java-gradle.test.iml" filepath="$PROJECT_DIR$/.idea/modules/java-gradle.test.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="java-gradle:main" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="" external.system.module.type="sourceSet" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
<output url="file://$MODULE_DIR$/../../out/production/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$/../../src/main" />
<content url="file://$MODULE_DIR$/../../../../../src">
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.base/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.datatransfer/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.desktop/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.instrument/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.logging/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.management.rmi/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.management/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.naming/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.prefs/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.rmi/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.scripting/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.se/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.security.jgss/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.security.sasl/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.smartcardio/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.sql.rowset/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.sql/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.xml.crypto/share/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.base/macosx/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.datatransfer/macosx/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.desktop/macosx/classes" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../../../src/java.prefs/macosx/classes" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="java-gradle:test" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="" external.system.module.type="sourceSet" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
<output-test url="file://$MODULE_DIR$/../../out/test/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$/../../src/test" />
<content url="file://$MODULE_DIR$/../../../../../test">
<sourceFolder url="file://$MODULE_DIR$/../../../../../test/jdk/jbu" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="java-gradle.main" />
<orderEntry type="library" name="Gradle: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" name="Gradle: net.java.dev.jna:jna:4.4.0" level="project" />
<orderEntry type="library" name="Gradle: com.twelvemonkeys.imageio:imageio-tiff:3.3.2" level="project" />
<orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.0" level="project" />
<orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Gradle: com.twelvemonkeys.imageio:imageio-metadata:3.3.2" level="project" />
<orderEntry type="library" name="Gradle: com.twelvemonkeys.imageio:imageio-core:3.3.2" level="project" />
<orderEntry type="library" name="Gradle: com.twelvemonkeys.common:common-image:3.3.2" level="project" />
<orderEntry type="library" name="Gradle: com.twelvemonkeys.common:common-io:3.3.2" level="project" />
<orderEntry type="library" name="Gradle: com.twelvemonkeys.common:common-lang:3.3.2" level="project" />
</component>
<component name="TestModuleProperties" production-module="java-gradle.main" />
</module>

6
jb/project/java-gradle/.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
</component>
</project>

View File

@@ -110,7 +110,6 @@ final class ScreenMenu extends Menu
final Component[] items = fInvoker.getMenuComponents();
if (needsUpdate(items, childHashArray)) {
removeAll();
fItems.clear();
if (count <= 0) return;
childHashArray = new int[count];
@@ -247,7 +246,7 @@ final class ScreenMenu extends Menu
synchronized (getTreeLock()) {
super.addNotify();
if (fModelPtr == 0) {
fInvoker.getPopupMenu().addContainerListener(this);
fInvoker.addContainerListener(this);
fInvoker.addComponentListener(this);
fPropertyListener = new ScreenMenuPropertyListener(this);
fInvoker.addPropertyChangeListener(fPropertyListener);
@@ -282,7 +281,7 @@ final class ScreenMenu extends Menu
if (fModelPtr != 0) {
removeMenuListeners(fModelPtr);
fModelPtr = 0;
fInvoker.getPopupMenu().removeContainerListener(this);
fInvoker.removeContainerListener(this);
fInvoker.removeComponentListener(this);
fInvoker.removePropertyChangeListener(fPropertyListener);
}
@@ -303,10 +302,11 @@ final class ScreenMenu extends Menu
@Override
public void componentRemoved(final ContainerEvent e) {
final Component child = e.getChild();
final MenuItem sm = fItems.remove(child);
final MenuItem sm = fItems.get(child);
if (sm == null) return;
remove(sm);
fItems.remove(sm);
}
/**

View File

@@ -47,7 +47,7 @@ public class CImage extends CFRetainedResource {
private static native long nativeCreateNSImageFromImageName(String name);
private static native long nativeCreateNSImageFromIconSelector(int selector);
private static native byte[] nativeGetPlatformImageBytes(int[] buffer, int w, int h);
private static native void nativeCopyNSImageIntoArray(long image, int[] buffer, int sw, int sh, int dw, int dh);
private static native void nativeCopyNSImageIntoArray(long image, int[] buffer, int dw, int dh);
private static native Dimension2D nativeGetNSImageSize(long image);
private static native void nativeSetNSImageSize(long image, double w, double h);
private static native void nativeResizeNSImageRepresentations(long image, double w, double h);
@@ -280,8 +280,8 @@ public class CImage extends CFRetainedResource {
if (size == null) {
return null;
}
final int w = (int)size.getWidth();
final int h = (int)size.getHeight();
final int baseWidth = (int)size.getWidth();
final int baseHeight = (int)size.getHeight();
AtomicReference<Dimension2D[]> repRef = new AtomicReference<>();
execute(ptr -> {
repRef.set(nativeGetNSImageRepresentationSizes(ptr, size.getWidth(),
@@ -289,18 +289,31 @@ public class CImage extends CFRetainedResource {
});
Dimension2D[] sizes = repRef.get();
// The image may be represented in the only size which differs from the base one.
// For instance, the app's dock icon is represented in a Retina-scaled size on Retina.
// Check if a single represenation has a bigger size and in that case use it as the dest size.
Dimension2D size0 = size;
if (sizes != null && sizes.length == 1 &&
(sizes[0].getWidth() > baseWidth && sizes[0].getHeight() > baseHeight))
{
size0 = sizes[0];
}
final int dstWidth = (int)size0.getWidth();
final int dstHeight = (int)size0.getHeight();
return sizes == null || sizes.length < 2 ?
new MultiResolutionCachedImage(w, h, (width, height)
-> toImage(w, h, width, height))
: new MultiResolutionCachedImage(w, h, sizes, (width, height)
-> toImage(w, h, width, height));
new MultiResolutionCachedImage(baseWidth, baseHeight, (width, height)
-> toImage(dstWidth, dstHeight))
: new MultiResolutionCachedImage(baseWidth, baseHeight, sizes, (width, height)
-> toImage(width, height));
}
private BufferedImage toImage(int srcWidth, int srcHeight, int dstWidth, int dstHeight) {
private BufferedImage toImage(int dstWidth, int dstHeight) {
final BufferedImage bimg = new BufferedImage(dstWidth, dstHeight, BufferedImage.TYPE_INT_ARGB_PRE);
final DataBufferInt dbi = (DataBufferInt)bimg.getRaster().getDataBuffer();
final int[] buffer = SunWritableRaster.stealData(dbi, 0);
execute(ptr->nativeCopyNSImageIntoArray(ptr, buffer, srcWidth, srcHeight, dstWidth, dstHeight));
execute(ptr->nativeCopyNSImageIntoArray(ptr, buffer, dstWidth, dstHeight));
SunWritableRaster.markDirty(dbi);
return bimg;
}

View File

@@ -325,9 +325,9 @@ final class CPlatformResponder {
if (isISOControl) {
characterToSendWithTheEvent = checkedChar;
} else {
characterToSendWithTheEvent = mapNsCharsToCompatibleWithJava(characterToSendWithTheEvent);
}
}
characterToSendWithTheEvent = mapNsCharsToCompatibleWithJava(characterToSendWithTheEvent);
String stringWithChar = NSEvent.nsToJavaChar(characterToSendWithTheEvent, nsEvent.getModifierFlags(), spaceKeyTyped);
characterToSendWithTheEvent = stringWithChar == null ? KeyEvent.CHAR_UNDEFINED : stringWithChar.charAt(0);
@@ -361,11 +361,7 @@ final class CPlatformResponder {
characterToSendWithTypedEvent = stringWithChar == null ? KeyEvent.CHAR_UNDEFINED : stringWithChar.charAt(0);
}
boolean nonInputMethodsModifiersAreNotPressed = (jmodifiers &
(InputEvent.META_DOWN_MASK | InputEvent.CTRL_DOWN_MASK)
) == 0;
if (nonInputMethodsModifiersAreNotPressed) {
if (!nsEvent.isHasDeadKey()) {
eventNotifier.notifyKeyEvent(KeyEvent.KEY_TYPED, when, jmodifiers,
jkeyCode, characterToSendWithTypedEvent,
KeyEvent.KEY_LOCATION_UNKNOWN);

View File

@@ -103,9 +103,6 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
// for client properties
public static final String WINDOW_BRUSH_METAL_LOOK = "apple.awt.brushMetalLook";
public static final String WINDOW_DARK_APPEARANCE = "jetbrains.awt.windowDarkAppearance";
public static final String WINDOW_LIGHT_APPEARANCE = "jetbrains.awt.windowLightAppearance";
public static final String WINDOW_TRANSPARENT_TITLEBAR_APPEARANCE = "jetbrains.awt.transparentTitleBarAppearance";
public static final String WINDOW_AQUA_APPEARANCE = "jetbrains.awt.windowAquaAppearance";
public static final String WINDOW_DRAGGABLE_BACKGROUND = "apple.awt.draggableWindowBackground";
public static final String WINDOW_ALPHA = "Window.alpha";
@@ -151,8 +148,6 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
static final int RESIZABLE = 1 << 9; // both a style bit and prop bit
static final int DARK = 1 << 28;
static final int LIGHT = 1 << 29;
static final int TRANSPARENT_TITLEBAR = 1 << 30;
static final int NONACTIVATING = 1 << 24;
static final int IS_DIALOG = 1 << 25;
static final int IS_MODAL = 1 << 26;
@@ -199,12 +194,6 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
new Property<CPlatformWindow>(WINDOW_DARK_APPEARANCE) { public void applyProperty(final CPlatformWindow c, final Object value) {
c.setStyleBits(DARK, value == null ? true : Boolean.parseBoolean(value.toString()));
}},
new Property<CPlatformWindow>(WINDOW_TRANSPARENT_TITLEBAR_APPEARANCE) { public void applyProperty(final CPlatformWindow c, final Object value) {
c.setStyleBits(TRANSPARENT_TITLEBAR, value == null ? true : Boolean.parseBoolean(value.toString()));
}},
new Property<CPlatformWindow>(WINDOW_LIGHT_APPEARANCE) { public void applyProperty(final CPlatformWindow c, final Object value) {
c.setStyleBits(LIGHT, value == null ? true : Boolean.parseBoolean(value.toString()));
}},
new Property<CPlatformWindow>(WINDOW_ALPHA) { public void applyProperty(final CPlatformWindow c, final Object value) {
c.target.setOpacity(value == null ? 1.0f : Float.parseFloat(value.toString()));
}},
@@ -485,16 +474,6 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
styleBits = SET(styleBits, DARK, Boolean.parseBoolean(prop.toString()));
}
prop = rootpane.getClientProperty(WINDOW_TRANSPARENT_TITLEBAR_APPEARANCE);
if (prop != null) {
styleBits = SET(styleBits, TRANSPARENT_TITLEBAR, Boolean.parseBoolean(prop.toString()));
}
prop = rootpane.getClientProperty(WINDOW_LIGHT_APPEARANCE);
if (prop != null) {
styleBits = SET(styleBits, LIGHT, Boolean.parseBoolean(prop.toString()));
}
prop = rootpane.getClientProperty(WINDOW_ZOOMABLE);
if (prop != null) {
styleBits = SET(styleBits, ZOOMABLE, Boolean.parseBoolean(prop.toString()));

View File

@@ -326,7 +326,10 @@ static BOOL shouldUsePressAndHold() {
}
}
if ((![self hasMarkedText] && fKeyEventsNeeded)) {
NSString *eventCharacters = [event characters];
BOOL isDeadKey = (eventCharacters != nil && [eventCharacters length] == 0);
if ((![self hasMarkedText] && fKeyEventsNeeded) || isDeadKey) {
[self deliverJavaKeyEventHelper: event];
}
@@ -504,8 +507,7 @@ static BOOL shouldUsePressAndHold() {
JNIEnv *env = [ThreadUtilities getJNIEnv];
TISInputSourceRef sourceRef = TISCopyCurrentKeyboardLayoutInputSource();
CFDataRef keyLayoutPtr = (CFDataRef)TISGetInputSourceProperty(
sourceRef, kTISPropertyUnicodeKeyLayoutData);
CFDataRef keyLayoutPtr = (CFDataRef)TISGetInputSourceProperty(sourceRef, kTISPropertyUnicodeKeyLayoutData);
CFRelease( sourceRef);
const UCKeyboardLayout *keyboardLayout = (UCKeyboardLayout*)CFDataGetBytePtr(keyLayoutPtr);
@@ -543,6 +545,8 @@ static BOOL shouldUsePressAndHold() {
if (status == noErr && isDeadKeyPressed != 0) {
UInt32 isDeadKeyPressedIgnore = 0;
status = UCKeyTranslate(
keyboardLayout,
kVK_Space,
@@ -550,7 +554,7 @@ static BOOL shouldUsePressAndHold() {
0,
LMGetKbdType(),
0,
&isDeadKeyPressed,
&isDeadKeyPressedIgnore,
lengthOfBuffer,
&actualLength,
stringWithChars);

View File

@@ -274,14 +274,7 @@ AWT_NS_WINDOW_IMPLEMENTATION
AWT_ASSERT_APPKIT_THREAD;
NSUInteger styleMask = [AWTWindow styleMaskForStyleBits:bits];
BOOL isTransparentTitleBar = IS(bits, TRANSPARENT_TITLEBAR);
if (isTransparentTitleBar) {
styleMask = styleMask | NSFullSizeContentViewWindowMask;
}
NSRect contentRect = isTransparentTitleBar ? [NSWindow contentRectForFrameRect:rect styleMask:styleMask] : rect;
NSRect contentRect = rect; //[NSWindow contentRectForFrameRect:rect styleMask:styleMask];
if (contentRect.size.width <= 0.0) {
contentRect.size.width = 1.0;
}
@@ -326,11 +319,6 @@ AWT_ASSERT_APPKIT_THREAD;
[self.nsWindow setCollectionBehavior:(1 << 8) /*NSWindowCollectionBehaviorFullScreenAuxiliary*/];
}
self.nsWindow.titlebarAppearsTransparent = IS(bits, TRANSPARENT_TITLEBAR);
if (self.nsWindow.titlebarAppearsTransparent) {
[self.nsWindow setTitleVisibility:NSWindowTitleHidden];
}
if (IS(self.styleBits, DARK)) {
[self.nsWindow setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameVibrantDark]];
} else {

View File

@@ -201,11 +201,11 @@ AWT_ASSERT_APPKIT_THREAD;
self.fPreferencesMenu = (NSMenuItem*)[appMenu itemWithTag:PREFERENCES_TAG];
self.fAboutMenu = (NSMenuItem*)[appMenu itemAtIndex:0];
NSDockTile *dockTile = [NSApp dockTile];
self.fProgressIndicator = [[NSProgressIndicator alloc]
initWithFrame:NSMakeRect(3.f, 0.f, dockTile.size.width - 6.f, 20.f)];
[fProgressIndicator setStyle:NSProgressIndicatorBarStyle];
[fProgressIndicator setIndeterminate:NO];
[[dockTile contentView] addSubview:fProgressIndicator];
@@ -476,20 +476,8 @@ AWT_ASSERT_APPKIT_THREAD;
return;
}
// setup an image view for the dock tile
NSRect frame = NSMakeRect(0, 0, dockTile.size.width, dockTile.size.height);
NSImageView *dockImageView = [[NSImageView alloc] initWithFrame: frame];
[dockImageView setImageScaling:NSImageScaleProportionallyUpOrDown];
[dockImageView setImage:image];
[[ApplicationDelegate sharedDelegate].fProgressIndicator removeFromSuperview];
[dockImageView addSubview:[ApplicationDelegate sharedDelegate].fProgressIndicator];
// add it to the NSDockTile
[dockTile setContentView: dockImageView];
[dockTile display];
[dockImageView release];
// Set the app's icon instead to meet Retina.
[NSApp setApplicationIconImage:image];
}
+ (void)_setDockIconProgress:(NSNumber *)value {
@@ -510,25 +498,8 @@ AWT_ASSERT_APPKIT_THREAD;
+ (NSImage *)_dockIconImage {
AWT_ASSERT_APPKIT_THREAD;
NSDockTile *dockTile = [NSApp dockTile];
NSView *view = [dockTile contentView];
if ([view isKindOfClass:[NSImageView class]]) {
NSImage *img = [((NSImageView *)view) image];
if (img) return img;
}
if (view == nil) {
return [NSImage imageNamed:@"NSApplicationIcon"];
}
NSRect frame = [view frame];
NSImage *image = [[NSImage alloc] initWithSize:frame.size];
[image lockFocus];
[view drawRect:frame];
[image unlockFocus];
[image autorelease];
return image;
// The app's dock icon defaults to the app's icon (see the spec) which is Retina-aware unlike the dock icon.
return [NSApp applicationIconImage];
}
@end

View File

@@ -142,7 +142,6 @@ canChooseDirectories:(BOOL)inChooseDirectories
[thePanel setNameFieldStringValue:fFile];
}
CMenuBar *menuBar = nil;
if (fOwner != nil) {
// Finds appropriate menubar in our hierarchy,
@@ -151,6 +150,7 @@ canChooseDirectories:(BOOL)inChooseDirectories
awtWindow = awtWindow.ownerWindow;
}
CMenuBar *menuBar = nil;
BOOL isDisabled = NO;
if ([awtWindow.nsWindow isVisible]){
menuBar = awtWindow.javaMenuBar;
@@ -180,9 +180,6 @@ canChooseDirectories:(BOOL)inChooseDirectories
}
[fURLs retain];
[NSApp stopModal];
if (menuBar != nil) {
[CMenuBar activate:menuBar modallyDisabled:NO];
}
}
];

View File

@@ -257,24 +257,24 @@ JNF_COCOA_EXIT(env);
/*
* Class: sun_lwawt_macosx_CImage
* Method: nativeCopyNSImageIntoArray
* Signature: (J[IIIII)V
* Signature: (J[III)V
*/
JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CImage_nativeCopyNSImageIntoArray
(JNIEnv *env, jclass klass, jlong nsImgPtr, jintArray buffer, jint sw, jint sh,
jint dw, jint dh)
(JNIEnv *env, jclass klass, jlong nsImgPtr, jintArray buffer, jint dw, jint dh)
{
JNF_COCOA_ENTER(env);
JNF_COCOA_ENTER(env);
NSImage *img = (NSImage *)jlong_to_ptr(nsImgPtr);
jint *dst = (*env)->GetPrimitiveArrayCritical(env, buffer, NULL);
if (dst) {
NSRect fromRect = NSMakeRect(0, 0, sw, sh);
NSSize size = [(NSImage *)jlong_to_ptr(nsImgPtr) size];
NSRect fromRect = NSMakeRect(0, 0, size.width, size.height);
NSRect toRect = NSMakeRect(0, 0, dw, dh);
CImage_CopyNSImageIntoArray(img, dst, fromRect, toRect);
(*env)->ReleasePrimitiveArrayCritical(env, buffer, dst, JNI_ABORT);
}
JNF_COCOA_EXIT(env);
JNF_COCOA_EXIT(env);
}
/*

View File

@@ -30,7 +30,6 @@
#import "CMenuBar.h"
#import "CMenu.h"
#import "PropertiesUtilities.h"
#import "ThreadUtilities.h"
#import "ApplicationDelegate.h"
@@ -43,7 +42,6 @@ NSString *CMenuBarDidReuseItemNotification =
static CMenuBar *sActiveMenuBar = nil;
static NSMenu *sDefaultHelpMenu = nil;
static BOOL sSetupHelpMenu = NO;
static BOOL sUseSingleMenuBar = NO; // Equals YES when VM-property 'mac.system.menu.singleton' == true
@interface CMenuBar (CMenuBar_Private)
+ (void) addDefaultHelpMenu;
@@ -100,8 +98,7 @@ static BOOL sUseSingleMenuBar = NO; // Equals YES when VM-property 'mac.system.m
AWT_ASSERT_APPKIT_THREAD;
if (!menubar) {
if (!sUseSingleMenuBar)
[CMenuBar clearMenuBarExcludingAppleMenu_OnAppKitThread:YES];
[CMenuBar clearMenuBarExcludingAppleMenu_OnAppKitThread:YES];
return;
}
@@ -110,8 +107,6 @@ static BOOL sUseSingleMenuBar = NO; // Equals YES when VM-property 'mac.system.m
#endif
@synchronized([CMenuBar class]) {
if (sUseSingleMenuBar && sActiveMenuBar == menubar && menubar->fModallyDisabled == modallyDisabled)
return;
sActiveMenuBar = menubar;
}
@@ -402,8 +397,6 @@ static BOOL sUseSingleMenuBar = NO; // Equals YES when VM-property 'mac.system.m
@end
static BOOL sUseSingleMenuBarCalculated = NO;
/*
* Class: sun_lwawt_macosx_CMenuBar
* Method: nativeCreateMenuBar
@@ -428,13 +421,6 @@ Java_sun_lwawt_macosx_CMenuBar_nativeCreateMenuBar
}
JNF_COCOA_EXIT(env);
if (!sUseSingleMenuBarCalculated) {
NSString * sval = [PropertiesUtilities javaSystemPropertyForKey:@"mac.system.menu.singleton" withEnv:env];
sUseSingleMenuBar = sval != nil && ([@"true" caseInsensitiveCompare:sval] == 0);
sUseSingleMenuBarCalculated = YES;
}
return ptr_to_jlong(aCMenuBar);
}

View File

@@ -347,7 +347,7 @@ public class PopupFactory {
private static final Object heavyWeightPopupCacheKey =
new StringBuffer("PopupFactory.heavyWeightPopupCache");
private volatile boolean isCacheEnabled = false;
private volatile boolean isCacheEnabled = true;
/**
* Returns either a new or recycled <code>Popup</code> containing

View File

@@ -1967,7 +1967,6 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
* @see DocumentListener#insertUpdate
*/
public final void insertUpdate(DocumentEvent e) {
rootViewInitialized = false;
Document doc = e.getDocument();
Object o = doc.getProperty("i18n");
if (o instanceof Boolean) {
@@ -1996,7 +1995,6 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
* @see DocumentListener#removeUpdate
*/
public final void removeUpdate(DocumentEvent e) {
rootViewInitialized = false;
Rectangle alloc = (painted) ? getVisibleEditorRect() : null;
rootView.removeUpdate(e, alloc, rootView.getViewFactory());
}
@@ -2012,7 +2010,6 @@ public abstract class BasicTextUI extends TextUI implements ViewFactory {
* @see DocumentListener#changedUpdate(DocumentEvent)
*/
public final void changedUpdate(DocumentEvent e) {
rootViewInitialized = false;
Rectangle alloc = (painted) ? getVisibleEditorRect() : null;
rootView.changedUpdate(e, alloc, rootView.getViewFactory());
}

View File

@@ -300,24 +300,6 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
jreFontMap.put("droid serif3", "DroidSerif-BoldItalic.ttf");
jreFontMap.put("droid serif bold1", "DroidSerif-Bold.ttf");
jreFontMap.put("droid serif bold italic3", "DroidSerif-BoldItalic.ttf");
/* Idea bundled fonts */
jreFontMap.put("FiraCode bold", "FiraCode-Bold.ttf");
jreFontMap.put("FiraCode light", "FiraCode-Light.ttf");
jreFontMap.put("FiraCode medium", "FiraCode-Medium.ttf");
jreFontMap.put("FiraCode retina", "FiraCode-Retina.ttf");
jreFontMap.put("FiraCode regular", "FiraCode-Regular.ttf");
jreFontMap.put("SourceCodePro bold italic", "SourceCodePro-BoldIt.ttf");
jreFontMap.put("SourceCodePro regular", "SourceCodePro-Regular.ttf");
jreFontMap.put("SourceCodePro bold", "SourceCodePro-Bold.ttf");
jreFontMap.put("SourceCodePro italic", "SourceCodePro-It.ttf");
jreFontMap.put("Inconsolata", "Inconsolata.ttf");
jreFontMap.put("Roboto light", "Roboto-Light.ttf");
jreFontMap.put("Roboto thin", "Roboto-Thin.ttf");
for (String ffile : jreFontMap.values()) {
jreBundledFontFiles.add(ffile);
}

View File

@@ -1,102 +0,0 @@
Copyright (c) 2014, Nikita Prokopov http://tonsky.me
with Reserved Font Name Fira Code.
Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
with Reserved Font Name Fira Sans.
Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
with Reserved Font Name Fira Mono.
Copyright (c) 2014, Telefonica S.A.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@@ -1,93 +0,0 @@
Copyright (c) 2011, Raph Levien (firstname.lastname@gmail.com), Copyright (c) 2012, Cyreal (cyreal.org)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@@ -1,93 +0,0 @@
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@@ -594,13 +594,12 @@ class XDnDDropTargetProtocol extends XDropTargetProtocol {
XBaseWindow xbasewindow = XToolkit.windowToXWindow(xclient.get_window());
if (xbasewindow instanceof XWindow) {
xwindow = (XWindow)xbasewindow;
// xclient can be a system-generated or a sent event (see XDragSourceContextPeer)
// so x/y is expected to be presented in device space
x = xbasewindow.scaleDown(x);
y = xbasewindow.scaleDown(y);
}
}
if (xwindow == null) {
long receiver =
XDropTargetRegistry.getRegistry().getEmbeddedDropSite(

View File

@@ -524,9 +524,8 @@ public final class XDragSourceContextPeer
updateTargetWindow(xmotion);
if (dragProtocol != null) {
// XDnDDropTargetProtocol.processXdndPosition will scale x/y
dragProtocol.sendMoveMessage(xmotion.get_x_root(),
xmotion.get_y_root(),
dragProtocol.sendMoveMessage(scaleDown(xmotion.get_x_root()),
scaleDown(xmotion.get_y_root()),
sourceAction, sourceActions,
xmotion.get_time());
}
@@ -534,9 +533,8 @@ public final class XDragSourceContextPeer
private void processDrop(XButtonEvent xbutton) {
try {
// XDnDDropTargetProtocol.processXdndPosition will scale x/y
dragProtocol.initiateDrop(xbutton.get_x_root(),
xbutton.get_y_root(),
dragProtocol.initiateDrop(scaleDown(xbutton.get_x_root()),
scaleDown(xbutton.get_y_root()),
sourceAction, sourceActions,
xbutton.get_time());
} catch (XException e) {

View File

@@ -72,17 +72,6 @@ public class XInputMethod extends X11InputMethod {
return createXICNative(peer.getContentWindow());
}
protected boolean recreateXIC() {
final XComponentPeer peer = (XComponentPeer)getPeer(clientComponentWindow);
if (peer == null || pData == 0)
return true;
return recreateXICNative(peer.getContentWindow(), pData);
}
protected void releaseXIC() {
if (pData == 0)
return;
releaseXICNative(pData);
}
private static volatile long xicFocus = 0;
@@ -161,8 +150,6 @@ public class XInputMethod extends X11InputMethod {
*/
private native boolean openXIMNative(long display);
private native boolean createXICNative(long window);
private native boolean recreateXICNative(long window, long px11data);
private native void releaseXICNative(long px11data);
private native void setXICFocusNative(long window,
boolean value, boolean active);
private native void adjustStatusWindow(long window);

View File

@@ -25,9 +25,6 @@
package sun.awt;
import java.util.List;
import java.util.ArrayList;
import java.awt.AWTException;
import java.awt.event.InputMethodEvent;
import java.awt.font.TextAttribute;
@@ -43,7 +40,6 @@ import sun.util.logging.PlatformLogger;
* @author JavaSoft International
*/
public abstract class X11InputMethod extends X11InputMethodBase {
protected static final List<X11InputMethod> activeInputMethods = new ArrayList<X11InputMethod>();
/**
* Constructs an X11InputMethod instance. It initializes the XIM
@@ -89,9 +85,6 @@ public abstract class X11InputMethod extends X11InputMethodBase {
if (!createXIC()) {
return;
}
awtLock();
activeInputMethods.add(this);
awtUnlock();
disposed = false;
}
@@ -336,7 +329,6 @@ public abstract class X11InputMethod extends X11InputMethodBase {
protected synchronized void disposeImpl() {
disposeXIC();
awtLock();
activeInputMethods.remove(this);
composedText = null;
committedText = null;
rawFeedbacks = null;
@@ -361,22 +353,4 @@ public abstract class X11InputMethod extends X11InputMethodBase {
savedCompositionState = enable;
}
}
static void recreateAllXIC() {
// NOTE: called from native within AWT_LOCK
for (X11InputMethod im : activeInputMethods)
im.releaseXIC();
if (!recreateX11InputMethod()) {
log.warning("can't recreate X11 InputMethod");
return;
}
for (X11InputMethod im : activeInputMethods) {
if (!im.recreateXIC())
log.warning("can't recreate XIC for " + im.toString());
}
}
protected abstract boolean recreateXIC();
protected abstract void releaseXIC();
private static native boolean recreateX11InputMethod();
}

View File

@@ -342,8 +342,13 @@ static void setX11InputMethodData(JNIEnv * env, jobject imInstance, X11InputMeth
JNU_SetLongFieldFromPtr(env, imInstance, x11InputMethodIDs.pData, pX11IMData);
}
/* this function should be called within AWT_LOCK() */
static void
destroyXInputContexts(X11InputMethodData *pX11IMData) {
destroyX11InputMethodData(JNIEnv *env, X11InputMethodData *pX11IMData)
{
/*
* Destroy XICs
*/
if (pX11IMData == NULL) {
return;
}
@@ -360,20 +365,7 @@ destroyXInputContexts(X11InputMethodData *pX11IMData) {
pX11IMData->current_ic = (XIC)0;
}
}
}
/* this function should be called within AWT_LOCK() */
static void
destroyX11InputMethodData(JNIEnv *env, X11InputMethodData *pX11IMData)
{
/*
* Destroy XICs
*/
if (pX11IMData == NULL) {
return;
}
destroyXInputContexts(pX11IMData);
freeX11InputMethodData(env, pX11IMData);
}
@@ -1372,27 +1364,6 @@ finally:
return (pX11IMData != NULL);
}
JNIEXPORT jboolean JNICALL
Java_sun_awt_X11_XInputMethod_recreateXICNative(JNIEnv *env,
jobject this,
jlong window, jlong pData)
{
// NOTE: must be called under AWT_LOCK
return createXIC(env, (X11InputMethodData *)pData, window);
}
JNIEXPORT void JNICALL
Java_sun_awt_X11_XInputMethod_releaseXICNative(JNIEnv *env,
jobject this,
jlong pData)
{
// NOTE: must be called under AWT_LOCK
X11InputMethodData * pX11IMData = (X11InputMethodData *)pData;
pX11IMData->current_ic = NULL;
destroyXInputContexts(pX11IMData);
}
JNIEXPORT void JNICALL
Java_sun_awt_X11_XInputMethod_setXICFocusNative(JNIEnv *env,
jobject this,
@@ -1645,21 +1616,3 @@ JNIEXPORT void JNICALL Java_sun_awt_X11_XInputMethod_adjustStatusWindow
AWT_UNLOCK();
#endif
}
JNIEXPORT jboolean JNICALL
Java_sun_awt_X11InputMethod_recreateX11InputMethod(JNIEnv *env, jclass cls)
{
if (X11im == NULL || dpy == NULL)
return JNI_FALSE;
Status retstat = XCloseIM(X11im);
X11im = XOpenIM(dpy, NULL, NULL, NULL);
if (X11im == NULL)
return JNI_FALSE;
XIMCallback ximCallback;
ximCallback.callback = (XIMProc)DestroyXIMCallback;
ximCallback.client_data = NULL;
XSetIMValues(X11im, XNDestroyCallback, &ximCallback, NULL);
return JNI_TRUE;
}

View File

@@ -324,8 +324,6 @@ GtkApi* gtk3_load(JNIEnv *env, const char* lib_name)
/* GDK */
fp_gdk_get_default_root_window =
dl_symbol("gdk_get_default_root_window");
fp_gdk_window_get_scale_factor =
dl_symbol("gdk_window_get_scale_factor");
/* Pixbuf */
fp_gdk_pixbuf_new = dl_symbol("gdk_pixbuf_new");
@@ -2871,10 +2869,7 @@ static gboolean gtk3_get_drawable_data(JNIEnv *env, jintArray pixelArray,
jint *ary;
GdkWindow *root = (*fp_gdk_get_default_root_window)();
int win_scale = (*fp_gdk_window_get_scale_factor)(root);
pixbuf = (*fp_gdk_pixbuf_get_from_drawable)(
root, x, y, (int)(width / (float)win_scale + 0.5), (int)(height / (float)win_scale + 0.5));
pixbuf = (*fp_gdk_pixbuf_get_from_drawable)(root, x, y, width, height);
if (pixbuf && scale != 1) {
GdkPixbuf *scaledPixbuf;
x /= scale;
@@ -2892,8 +2887,8 @@ static gboolean gtk3_get_drawable_data(JNIEnv *env, jintArray pixelArray,
if (pixbuf) {
int nchan = (*fp_gdk_pixbuf_get_n_channels)(pixbuf);
int stride = (*fp_gdk_pixbuf_get_rowstride)(pixbuf);
if ((*fp_gdk_pixbuf_get_width)(pixbuf) >= width
&& (*fp_gdk_pixbuf_get_height)(pixbuf) >= height
if ((*fp_gdk_pixbuf_get_width)(pixbuf) == width
&& (*fp_gdk_pixbuf_get_height)(pixbuf) == height
&& (*fp_gdk_pixbuf_get_bits_per_sample)(pixbuf) == 8
&& (*fp_gdk_pixbuf_get_colorspace)(pixbuf) == GDK_COLORSPACE_RGB
&& nchan >= 3

View File

@@ -253,7 +253,6 @@ static gchar* (*fp_gtk_check_version)(guint required_major, guint
static void (*fp_g_free)(gpointer mem);
static void (*fp_g_object_unref)(gpointer object);
static GdkWindow *(*fp_gdk_get_default_root_window) (void);
static int (*fp_gdk_window_get_scale_factor) (GdkWindow *window);
static int (*fp_gdk_pixbuf_get_bits_per_sample)(const GdkPixbuf *pixbuf);
static guchar *(*fp_gdk_pixbuf_get_pixels)(const GdkPixbuf *pixbuf);

View File

@@ -644,55 +644,6 @@ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XWindowEvent
XWindowEvent( (Display *) jlong_to_ptr(display), (Window)window, event_mask, (XEvent *) jlong_to_ptr(event_return));
}
static int filteredEventsCount = 0;
static int filteredEventsThreshold = -1;
#define KeyPressEventType 2
#define KeyReleaseEventType 3
static void checkBrokenInputMethod(XEvent * event, jboolean isEventFiltered) {
if (filteredEventsThreshold < 0) {
filteredEventsThreshold = 0;
// read from VM-property
JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
jclass systemCls = (*env)->FindClass(env, "java/lang/System");
CHECK_NULL(systemCls);
jmethodID mid = (*env)->GetStaticMethodID(env, systemCls, "getProperty", "(Ljava/lang/String;)Ljava/lang/String;");
CHECK_NULL(mid);
jstring name = (*env)->NewStringUTF(env, "recreate.x11.input.method");
CHECK_NULL(name);
jstring jvalue = (*env)->CallStaticObjectMethod(env, systemCls, mid, name);
if (jvalue != NULL) {
const char * utf8string = (*env)->GetStringUTFChars(env, jvalue, NULL);
if (utf8string != NULL) {
const int parsedVal = atoi(utf8string);
if (parsedVal > 0)
filteredEventsThreshold = parsedVal;
else if (strncmp(utf8string, "true", 4) == 0)
filteredEventsThreshold = 10;
}
(*env)->ReleaseStringUTFChars(env, jvalue, utf8string);
}
(*env)->DeleteLocalRef(env, name);
}
if (filteredEventsThreshold <= 0)
return;
if (event->type == KeyPressEventType || event->type == KeyReleaseEventType) {
if (isEventFiltered) {
filteredEventsCount++;
} else {
filteredEventsCount = 0;
}
if (filteredEventsCount > filteredEventsThreshold) {
JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
JNU_CallStaticMethodByName(env, NULL, "sun/awt/X11InputMethod", "recreateAllXIC", "()V");
filteredEventsCount = 0;
}
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XFilterEvent
@@ -707,9 +658,7 @@ JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XFilterEvent
return (jboolean)True;
}
#endif
jboolean isEventFiltered = (jboolean) XFilterEvent((XEvent *) jlong_to_ptr(ptr), (Window) window);
checkBrokenInputMethod((XEvent *)jlong_to_ptr(ptr), isEventFiltered);
return isEventFiltered;
return (jboolean) XFilterEvent((XEvent *) jlong_to_ptr(ptr), (Window) window);
}
/*

View File

@@ -1720,7 +1720,7 @@ void GetSysInsets(RECT* insets, AwtFrame* pFrame) {
int dpi = device ? device->GetScaleX() * 96 : 96;
// GetSystemMetricsForDpi gives incorrect values, use AdjustWindowRectExForDpi for border metrics instead
RECT rect = {};
RECT rect = {0};
DWORD style = pFrame->IsResizable() ? WS_OVERLAPPEDWINDOW : WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME;
AwtToolkit::AdjustWindowRectExForDpi(&rect, style, FALSE, NULL, dpi);
::SetRect(insets, -rect.left, -rect.top, rect.right, rect.bottom);
@@ -1734,7 +1734,7 @@ LRESULT HitTestNCA(AwtFrame* frame, int x, int y) {
GetWindowRect(frame->GetHWnd(), &rcWindow);
// Get the frame rectangle, adjusted for the style without a caption.
RECT rcFrame = {};
RECT rcFrame = {0};
AdjustWindowRectEx(&rcFrame, WS_OVERLAPPEDWINDOW & ~WS_CAPTION, FALSE, NULL);
USHORT uRow = 1;

View File

@@ -103,21 +103,16 @@ public class ClassLoaderReferenceImpl extends ObjectReferenceImpl
Type findType(String signature) throws ClassNotLoadedException {
List<ReferenceType> types = visibleClasses();
// first check already loaded classes and possibly avoid massive signature retrieval later
String typeName = new JNITypeParser(signature).typeName();
for (ReferenceType type : vm.classesByName(typeName)) {
if (types.contains(type)) {
return type;
}
}
for (ReferenceType type : types) {
Iterator<ReferenceType> iter = types.iterator();
while (iter.hasNext()) {
ReferenceType type = iter.next();
if (type.signature().equals(signature)) {
return type;
}
}
throw new ClassNotLoadedException(typeName, "Class " + typeName + " not loaded");
JNITypeParser parser = new JNITypeParser(signature);
throw new ClassNotLoadedException(parser.typeName(),
"Class " + parser.typeName() + " not loaded");
}
byte typeValueKey() {

View File

@@ -38,12 +38,9 @@ import javax.swing.UIManager;
* @bug 8073320
* @summary Windows HiDPI support
* @author Alexander Scherbatiy
* @requires (os.family == "linux" | os.family == "windows")
* @requires (os.family == "windows")
* @run main/othervm -Dsun.java2d.win.uiScaleX=3 -Dsun.java2d.win.uiScaleY=2
HiDPIRobotScreenCaptureTest
* @run main/othervm -Dsun.java2d.uiScale=1 HiDPIRobotScreenCaptureTest
* @run main/othervm -Dsun.java2d.uiScale=2 HiDPIRobotScreenCaptureTest
* @run main/othervm -Dsun.java2d.uiScale=3 HiDPIRobotScreenCaptureTest
* HiDPIRobotScreenCaptureTest
*/
public class HiDPIRobotScreenCaptureTest {
@@ -53,13 +50,11 @@ public class HiDPIRobotScreenCaptureTest {
public static void main(String[] args) throws Exception {
if (System.getProperty("os.name").toLowerCase().contains("win")) {
try {
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {
return;
}
try {
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {
return;
}
Frame frame = new Frame();

View File

@@ -1,39 +0,0 @@
/*
* Copyright 2000-2019 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import javax.swing.*;
import java.awt.*;
import java.lang.reflect.InvocationTargetException;
/*
* @test
* @summary JBR-1604 Tooltip with package's info is cut
*/
public class JEditorPanePreferredSizeTest2 {
public static void main(String[] args) throws InvocationTargetException, InterruptedException {
final Dimension size = new Dimension();
SwingUtilities.invokeAndWait(() -> {
JEditorPane editorPane = new JEditorPane("text/html", "text");
editorPane.setBorder(null);
editorPane.getPreferredSize();
editorPane.setText("another text");
size.setSize(editorPane.getPreferredSize());
});
if (size.width <= 0 || size.height <= 0) {
throw new RuntimeException("Test FAILED: bad preferred size: " + size);
}
}
}

View File

@@ -179,7 +179,7 @@ java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest
java/awt/Focus/NonFocusableBlockedOwnerTest/NonFocusableBlockedOwnerTest.html 7124275 macosx-all
java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java 8000171 windows-all
java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java 8169110 macosx-all,windows-all,linux-all
java/awt/Focus/RequestFocusByCause/RequestFocusByCauseTest.java JRE-898 macosx-all,linux-all,windows-all
java/awt/Focus/RequestFocusByCause/RequestFocusByCauseTest.java JRE-898 macosx-all,linux-all
java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java JRE-898 macosx-all
java/awt/Focus/ResetMostRecentFocusOwnerTest/ResetMostRecentFocusOwnerTest.java 8168294 macosx-all,windows-all,linux-all
java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java JRE-898 macosx-all,linux-all
@@ -193,7 +193,7 @@ java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThr
java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.html 8202926 generic-all
java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java 8169096,8213522 macosx-all,linux-all,windows-all
java/awt/FontMetrics/FontCrash.java 8198336 windows-all
java/awt/Frame/DisposeParentGC/DisposeParentGC.java 8079786,8055833 macosx-all,linux-all
java/awt/Frame/DisposeParentGC/DisposeParentGC.java 8079786 macosx-all
java/awt/Frame/ExceptionOnSetExtendedStateTest/ExceptionOnSetExtendedStateTest.java 8198237 macosx-all
java/awt/Frame/FramesGC/FramesGC.java 8079069 macosx-all
java/awt/Frame/InvisibleOwner/InvisibleOwner.java 8169111 macosx-all,windows-all
@@ -529,13 +529,13 @@ java/awt/Modal/ToFront/FrameToFrontTKModal3Test.java
java/awt/Modal/ToFront/FrameToFrontTKModal4Test.java 8196441 macosx-all,windows-all,linux-all
java/awt/Modal/ToFront/FrameToFrontTKModal5Test.java 8196441 macosx-all,windows-all,linux-all
java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java 8177326 macosx-all,windows-all
java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8023562 macosx-all,windows-all,linux-all
java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8023562 macosx-all,windows-all
java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java JRE-898 macosx-all,windows-all,linux-all
java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java 8005021 macosx-all,windows-all,linux-all
java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java 8051455 macosx-all
java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html 8169534 macosx-all,windows-all,linux-all
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java 8168388 windows-all,macosx-all,linux-all
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java 8196017 windows-all,macosx-all,linux-all (macosx,linux: NPE commit testing)
java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java 8196017 windows-all,linux-all (linux: NPE commit testing)
java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java 8052166 linux-all
java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java 8080676,8129775 generic-all
java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java 8013428 generic-all
@@ -618,7 +618,6 @@ java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java
java/awt/dnd/NoFormatsCrashTest/NoFormatsCrashTest.html 8214221 windows-all,linux-all,macosx-all
java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.html 8171510 macosx-all
java/awt/dnd/URIListToFileListBetweenJVMsTest/URIListToFileListBetweenJVMsTest.html 8194947 generic-all
java/awt/event/ComponentEvent/MovedResizedTardyEventTest/MovedResizedTardyEventTest.html 6511207 generic-all
java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java 6618538 generic-all
java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java 8168646 generic-all
java/awt/event/KeyEvent/CorrectTime/CorrectTime.java 6626492 generic-all
@@ -904,7 +903,7 @@ javax/sound/midi/Sequencer/Recording.java
# jdk_swing
com/sun/java/swing/plaf/windows/Test8173145.java 8198334 windows-all
javax/swing/AbstractButton/6711682/bug6711682.java 8060765 windows-all,macosx-all,linux-all
javax/swing/AbstractButton/6711682/bug6711682.java 8060765 windows-all,macosx-all
javax/swing/Action/8133039/bug8133039.java 8196089 windows-all,macosx-all
javax/swing/JButton/4368790/bug4368790.java 8065582 macosx-all
javax/swing/JButton/8151303/PressedIconTest.java 8198689 macosx-all,windows-all (windows: commit testing)
@@ -974,7 +973,7 @@ javax/swing/JMenuItem/4171437/bug4171437.java
javax/swing/JMenuItem/4654927/bug4654927.java 8172536 macosx-all,windows-all,linux-all
javax/swing/JMenuItem/6209975/bug6209975.java 8204062 macosx-all,windows-all
javax/swing/JMenuItem/6249972/bug6249972.java 8197552 macosx-all,windows-all,linux-all
javax/swing/JPopupMenu/4458079/bug4458079.java 8040917 macosx-all,windows-all
javax/swing/JPopupMenu/4458079/bug4458079.java 8040917 macosx-all
javax/swing/JPopupMenu/4769039/bug4769039.java 8194045 generic-all
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
javax/swing/JPopupMenu/4966112/bug4966112.java 8064915,7151826 macosx-all,linux-all

View File

@@ -29,6 +29,7 @@ java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java
java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java nobug macosx-all,windows-all,linux-all
java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java nobug macosx-all
java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java nobug macosx-all
java/awt/Focus/RequestFocusByCause/RequestFocusByCauseTest.java nobug linux-all,windows-all reproduced with Adopt, OpenJDK
java/awt/Focus/WindowIsFocusableAccessByThreadsTest/WindowIsFocusableAccessByThreadsTest.java nobug macosx-all,windows-all
java/awt/Frame/8158918/SetExtendedState.java nobug linux-all
java/awt/Frame/FrameLocation/FrameLocation.java nobug linux-all
@@ -47,7 +48,7 @@ java/awt/Graphics/LineClipTest.java
java/awt/Graphics2D/ScaledTransform/ScaledTransform.java nobug macosx-all,linux-all,windows-all
java/awt/JAWT/JAWT.sh nobug linux-all,windows-all
java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.html nobug macosx-all,windows-all
java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java nobug macosx-all,windows-all,linux-all
java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogTest/EnqueueWithDialogTest.java nobug macosx-all,windows-all
java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html nobug windows-all reproduced with Adopt
java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java nobug windows-all
java/awt/List/ActionAfterRemove/ActionAfterRemove.java nobug windows-all
@@ -57,6 +58,8 @@ java/awt/List/ItemEventTest/ItemEventTest.java
java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java nobug macosx-all,windows-all
java/awt/List/ListGarbageCollectionTest/AwtListGarbageCollectionTest.java nobug linux-all
java/awt/Menu/NullMenuLabelTest/NullMenuLabelTest.java nobug linux-all
java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java nobug macosx-all,windows-all
java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java nobug macosx-all,windows-all
java/awt/Mixing/HWDisappear.java nobug macosx-all,windows-all
java/awt/Mixing/JButtonInGlassPane.java nobug macosx-all,linux-all,windows-all
java/awt/Mixing/LWComboBox.java nobug macosx-all,linux-all,windows-all
@@ -67,7 +70,6 @@ java/awt/Mixing/Validating.java
java/awt/Modal/LWModalTest/LWModalTest.java nobug macosx-all,windows-all
java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java nobug macosx-all,windows-all
java/awt/Modal/ToBack/ToBackModeless6Test.java nobug macosx-all,linux-all,windows-all
java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java nobug macosx-all,linux-all
java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java nobug macosx-all,windows-all,linux-all
java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java nobug macosx-all,linux-all,windows-all
java/awt/Mouse/MouseWheelAbsXY/MouseWheelAbsXY.java nobug macosx-all,windows-all
@@ -123,6 +125,7 @@ java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java
java/awt/event/KeyEvent/KeyChar/KeyCharTest.java nobug macosx-all,windows-all
java/awt/event/KeyEvent/KeyTyped/CtrlASCII.html nobug linux-all,windows-all
java/awt/event/KeyEvent/RobotCrash/RobotCrash.java nobug linux-all,windows-all
java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java nobug macosx-all,linux-all
java/awt/event/MouseEvent/ClickDuringKeypress/ClickDuringKeypress.java nobug macosx-all,windows-all,linux-all
java/awt/event/MouseEvent/EnterAsGrabbedEvent/EnterAsGrabbedEvent.java nobug macosx-all,windows-all
java/awt/event/MouseEvent/MouseButtonsTest/MouseButtonsTest.java nobug macosx-all,linux-all,windows-all
@@ -151,9 +154,8 @@ java/awt/keyboard/AltPlusNumberKeyCombinationsTest/AltPlusNumberKeyCombinationsT
java/awt/print/PaintSetEnabledDeadlock/PaintSetEnabledDeadlock.java nobug windows-all,linux-all
javax/swing/JComboBox/4199622/bug4199622.java nobug windows-all
javax/swing/JComboBox/4523758/bug4523758.java nobug macosx-all,windows-all,linux-all
javax/swing/JComponent/6989617/bug6989617.java nobug macosx-all
javax/swing/JDialog/Transparency/TransparencyTest.java nobug linux-all,macosx-all,windows-all
javax/swing/JComboBox/4523758/bug4523758.java nobug macosx-all,windows-all
javax/swing/JDialog/Transparency/TransparencyTest.java nobug macosx-all,windows-all
javax/swing/JEditorPane/JEditorPaneGCSwitchTest/JEditorPaneGCSwitchTest.java nobug windows-all
javax/swing/JEditorPane/JEditorPaneGCSwitchTest/JEditorPaneGCSwitchTest_i18n.java nobug windows-all
javax/swing/JFileChooser/6489130/bug6489130.java nobug macosx-all
@@ -174,6 +176,7 @@ javax/swing/JMenu/6538132/bug6538132.java
javax/swing/JMenuItem/8139169/ScreenMenuBarInputTwice.java nobug macosx-all
javax/swing/JMenuItem/8158566/CloseOnMouseClickPropertyTest.java nobug windows-all
javax/swing/JOptionPane/6428694/bug6428694.java nobug windows-all
javax/swing/JPopupMenu/4458079/bug4458079.java nobug windows-all
javax/swing/JPopupMenu/4634626/bug4634626.java nobug windows-all
javax/swing/JPopupMenu/6544309/bug6544309.java nobug linux-all,windows-all
javax/swing/JPopupMenu/6827786/bug6827786.java nobug windows-all
@@ -183,7 +186,6 @@ javax/swing/JScrollBar/7163696/Test7163696.java
javax/swing/JScrollBar/bug4202954/bug4202954.java nobug windows-all
javax/swing/JSlider/6401380/bug6401380.java nobug windows-all
javax/swing/JTabbedPane/7161568/bug7161568.java nobug windows-all
javax/swing/JTabbedPane/7170310/bug7170310.java nobug macosx-all,linux-all
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java nobug windows-all
javax/swing/JToolTip/6219960/bug6219960.java nobug macosx-all,windows-all
javax/swing/JTree/4633594/JTreeFocusTest.java nobug macosx-all,windows-all

View File

@@ -438,9 +438,8 @@ public class RenderPerfTest {
Timer timer = new Timer(DELAY, e -> {
if (waiting.compareAndSet(false, true)) {
Color c = robot.getPixelColor(
panel.getTopLevelAncestor().getX() + panel.getTopLevelAncestor().getInsets().left + BW / 2,
panel.getTopLevelAncestor().getY() + panel.getTopLevelAncestor().getInsets().top + BW / 2);
Color c = robot.getPixelColor(panel.getTopLevelAncestor().getX() + 25,
panel.getTopLevelAncestor().getY() + 25);
if (isAlmostEqual(c, Color.BLUE)) {
expColor = Color.RED;
} else {
@@ -452,8 +451,8 @@ public class RenderPerfTest {
} else {
while (!isAlmostEqual(
robot.getPixelColor(
panel.getTopLevelAncestor().getX() + panel.getTopLevelAncestor().getInsets().left + BW/2,
panel.getTopLevelAncestor().getY() + panel.getTopLevelAncestor().getInsets().top + BH/2),
panel.getTopLevelAncestor().getX() + BW / 2,
panel.getTopLevelAncestor().getY() + BH / 2),
expColor))
{
try {

View File

@@ -33,7 +33,7 @@ public class RenderUtil {
throws Exception
{
JFrame[] f = new JFrame[1];
int[] p = new int[2];
Point[] p = new Point[1];
double[] scale = new double[2];
SwingUtilities.invokeAndWait(() -> {
f[0] = new JFrame();
@@ -47,22 +47,19 @@ public class RenderUtil {
// e.g. rounded frame
c.setLocation(50, 50);
f[0].setVisible(true);
p[0] = f[0].getLocationOnScreen().x + f[0].getInsets().left;
p[1] = f[0].getLocationOnScreen().y + f[0].getInsets().top;
p[0]= c.getLocationOnScreen();
scale[0] = f[0].getGraphicsConfiguration().getDefaultTransform().getScaleX();
scale[1] = f[0].getGraphicsConfiguration().getDefaultTransform().getScaleY();
});
Rectangle screenRect;
Robot r = new Robot();
while (!Color.black.equals(r.getPixelColor(p[0] + 1, p[1] + 1))) {
p[0] = f[0].getLocationOnScreen().x + f[0].getInsets().left;
p[1] = f[0].getLocationOnScreen().y + f[0].getInsets().top;
while (!Color.black.equals(r.getPixelColor(p[0].x+1, p[0].y))) {
Thread.sleep(100);
}
screenRect = new Rectangle(
p[0] + 5,
p[1] + 5,
p[0].x + 5,
p[0].y + 5,
(int)((width - 20) * scale[0]), (int)((height - 30) * scale[1]));
BufferedImage result = r.createScreenCapture(screenRect);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB