<AWT Dev> Proposal: X11 icon window color handing patch
Ichiroh Takiguchi
takiguc at linux.vnet.ibm.com
Wed Jun 13 09:36:45 UTC 2018
Hello,
IBM would like to contribute X11 icon window color handing patch to
OpenJDK project.
Issue:
It seems some of colors on icon for pseudo color are not appropriate.
Test program is as follows:
======
$ cat IconifiedFrame.java
import java.awt.*;
import java.awt.event.*;
public class IconifiedFrame extends Frame {
IconifiedFrame() {
super("IconifiedFrame");
setSize(100, 100);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) { System.exit(0); }
});
setExtendedState(Frame.ICONIFIED);
setVisible(true);
}
public static void main(String[] args) {
new IconifiedFrame();
}
}
======
To recreate this issue on RHEL7, please try following steps.
(xorg-x11-server-Xephyr and openmotif rpm packages are required)
1. Type following commands from terminal
$ Xephyr :1 -ac -screen 800x600x8 &
$ xterm -display :1 &
2. On xterm on Xephyr
$ mwm &
$ javac IconifiedFrame.java
$ java IconifiedFrame
Reason:
Pseudo color is handled by unsigned byte data.
But Java's byte is signed, it was not converted to unsigned.
Modified code is as follows:
======
--- old/src/java.desktop/unix/classes/sun/awt/X11/XIconWindow.java
2018-06-13 16:23:17.889946251 +0900
+++ new/src/java.desktop/unix/classes/sun/awt/X11/XIconWindow.java
2018-06-13 16:23:17.274958922 +0900
@@ -281,8 +281,9 @@
ColorData cdata = adata.get_color_data(0);
int num_colors = cdata.get_awt_numICMcolors();
for (int i = 0; i < buf.length; i++) {
- buf[i] = (buf[i] >= num_colors) ?
- 0 : cdata.get_awt_icmLUT2Colors(buf[i]);
+ int b = Byte.toUnsignedInt(buf[i]);
+ buf[i] = (b >= num_colors) ?
+ 0 : cdata.get_awt_icmLUT2Colors(b);
}
bytes = Native.toData(buf);
} else if (srcBuf instanceof DataBufferInt) {
======
I'd like contribute following 1 file:
M src/java.desktop/unix/classes/sun/awt/X11/XIconWindow.java
I appreciate any feedback please, and how I would go about obtaining a
sponsor and contributor?
Thanks,
Ichiroh Takiguchi
IBM Japan, Ltd.
More information about the awt-dev
mailing list