JRE-50 GUI rendering issue ("cannot load system cursor: CopyDrop.32x32" exception)
Replaced incorrect cursor size with preferred one
diff --git a/src/solaris/classes/sun/awt/X11/XCustomCursor.java b/src/solaris/classes/sun/awt/X11/XCustomCursor.java
index 0135e25..cb265c7 100644
--- a/src/solaris/classes/sun/awt/X11/XCustomCursor.java
+++ b/src/solaris/classes/sun/awt/X11/XCustomCursor.java
@@ -59,9 +59,18 @@
long display = XToolkit.getDisplay();
long root_window = XlibWrapper.RootWindow(display,
XlibWrapper.DefaultScreen(display));
+ preferredWidth = Math.abs(preferredWidth);
+ preferredHeight = Math.abs(preferredHeight);
- XlibWrapper.XQueryBestCursor(display,root_window, Math.abs(preferredWidth),Math.abs(preferredHeight),XlibWrapper.larg1,XlibWrapper.larg2);
- d = new Dimension(XlibWrapper.unsafe.getInt(XlibWrapper.larg1),XlibWrapper.unsafe.getInt(XlibWrapper.larg2));
+ XlibWrapper.XQueryBestCursor(display, root_window,
+ preferredWidth, preferredHeight,
+ XlibWrapper.larg1, XlibWrapper.larg2);
+
+ int cWidth = XlibWrapper.unsafe.getInt(XlibWrapper.larg1);
+ int cHeight = XlibWrapper.unsafe.getInt(XlibWrapper.larg2);
+ if (cWidth == 0) cWidth = preferredWidth;
+ if (cHeight == 0) cHeight = preferredHeight;
+ d = new Dimension(cWidth, cHeight);
}
finally {
XToolkit.awtUnlock();