Hi Omair, On 9/24/2010 6:12 PM, Omair Majid wrote:
While trying out a Java program, I noticed that some BadValue X errors were being reported (I had to set -Dsun.awt.noisyerrorhandler=True first). The webrev at http://cr.openjdk.java.net/~omajid/webrevs/x11-bad-widths-heights/webrev.00/ attempts to fix the issue.
Please make sure you put the true-branches of the if statements into {} blocks.
Do I understand correctly that we're fixing an issue with top-level windows only? If so, then I suggest to not touch the code in the XBasWindow, but rather tweak the bounds in the XWindowPeer where we add them to the create params map. (and perhaps in the XDecoratedPeer - need to check if their logic of initializing the params is separate or not.)
The problem is that there are some cases where the jdk is creating or resizing windows and setting widths and/or heights to 0. The man page
What are the exact cases? -- best regards, Anthony
for XResizeWindow states "If either width or height is zero, a BadValue error results". I looked at the source code for xorg-xserver and it appears that specifying a height or width of 0 for pretty much any X call will cause a BadValue error. The patch takes an approach similar to what is currently being done in XBaseWindow.xSetBounds(). It checks heights and widths, setting them to 1 if needed. Any comments? Cheers, Omair
