Hi, Omair,
I've just updated bug #6721088 and included the information about the
fix and the source of the problem. Do you prefer to push the fix into
workspace yourself? You/your company must have signed SCA for doing
that, and you also need a second reviewer from AWT group then.
As for isClientSizeSet() - it's pretty self-explanatory :) What kind of
additional comments do you suggest? Probably, something like this:
/**
* If isClient is true, the given rectangle is treated as a client
rect, otherwise as a whole window rect with insets included.
*/
public WindowDimensions(Rectangle rec, Insets ins, boolean isClient);
?
Thanks,
Artem
Omair Majid wrote:
Hi Artem,
Artem Ananiev wrote:
Hi, Omair,
thank you for the patch. It seems that the bug was closed by mistake,
so I have just reopened it against AWT.
Thanks!
As for proposed changes, there is a single question:
--- jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java.orig
2009-01-08 16:53:54.000000000 -0500
+++ jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java
2009-01-08 16:54:08.000000000 -0500
@@ -478,7 +478,10 @@
// do nothing but accept it.
Rectangle reqBounds = newDimensions.getBounds();
Rectangle newBounds = constrainBounds(reqBounds.x,
reqBounds.y, reqBounds.width, reqBounds.height);
- newDimensions = new WindowDimensions(newBounds,
newDimensions.getInsets(), newDimensions.isClientSizeSet());
+ Insets insets = newDimensions.getInsets();
+ Rectangle fixedBounds = new Rectangle(newBounds.x,
newBounds.y, newBounds.width - insets.left - insets.right,
+ newBounds.height - insets.top - insets.bottom);
+ newDimensions = new WindowDimensions(fixedBounds, insets,
newDimensions.isClientSizeSet());
}
XToolkit.awtLock();
try {
WindowDimensions class contains either client size or full size of the
window, depending on 'isClientSizeSet' flag. fixedBounds from your
patch is always a client rect, however isClientSizeSet is used from
newDimensions... I'd rewrite the last changed line this way:
+ newDimensions = new WindowDimensions(fixedBounds, insets,
true);
or, even better, this this one:
+ newDimensions = new
WindowDimensions(newDimensions.isClientSizeSet() ? fixedBounds :
newBounds, insets, newDimensions.isClientSizeSet());
Your comments?
Thanks for looking over the patch! As for your change, that seems like
the correct thing to do. Would it be possible to add the explanation for
isClientSizeSet()'s usage to WindowDimensions class? I just want to make
sure that nobody else makes the mistake I just did.
Cheers,
Omair