Hi, Jim.
Could you please review the updated version of the fix:
http://cr.openjdk.java.net/~serb/8004859/webrev.01
14.12.2012 0:40, Jim Graham wrote:
This fix breaks other behavior.

You need to use setFrameFromDiagonal on the results of the transform because a flip or rotation can cause the transformed points to be unordered and setFFD will sort them as they need to be. It is the incoming rectangle that needs to be checked for being empty, not the results of the transform.
In the new version I restore coordinates relation, if it were changed during transform.
Swap needed:
- If the user provide incorrect rectangle and after transformation we get correct rectangle. - If the user provide correct rectangle and after transformation we get incorrect rectangle.

The case that will fail with this fix is setting the clip to a valid rectangle in a coordinate system that is rotated by a multiple of 90 degrees or is flipped horizontally or vertically. Those cases will result in an empty clip, but the clip was not empty coming in...

            ...jim

On 12/13/2012 3:08 AM, Sergey Bylokhov wrote:
Hello,
Please review the fix for jdk 8.
Change description:
1 transformShape now symmetric to untransformShape()
(setFrameFromDiagonal was removed).
2 getClipBounds now always uses getBounds2D which does not return empty
Rectangle if the userclip has negative width or height.

Note that if the userclip has negative width or height, our real graphic
clip will be empty/no-area. This wasn't true before the fix for the
scaled graphics.

Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004859
Webrev can be found at: http://cr.openjdk.java.net/~serb/8004859/webrev.00



--
Best regards, Sergey.

Reply via email to