Hi Prasanta,
I think you are confused by the same name of the variables. newHeight/newWidth are in "updateImage" and also "ImageHandler::imageUpdate". imageUpdate can be called from a background thread, with new information from the image being loaded, that contains the newHeight and newWidth. Along with this, the "flags" variable lets us know what properties of the image are updated. For example, ImageObserver.HEIHGT and ImageObserver.WIDTH flags being set indicates, that this update call has fetched the image properties from the file. Based on this, I cache these values, and then update them once the image load is complete. Thanks, Krishna From: Prasanta Sadhukhan Sent: Friday, September 7, 2018 7:04 PM To: Krishna Addepalli <[email protected]>; [email protected] Subject: Re: <Swing Dev> RFR: [12] JDK-8208638: Instead of circle rendered in appl window, but ellipse is produced JEditor Pane Hi Krishna, We obtain newHeight and specifiedHeight by same method newHeight = getIntAttr(HTML.Attribute.HEIGHT, -1); and specifiedHeight = getIntAttr(HTML.Attribute.HEIGHT, -1); so I assume both will return the same value. So, 968 if (specifiedHeight <= 0) { 969 proportion = specifiedWidth / ((double)newWidth); 970 newHeight = (int)(proportion * newHeight); 971 } if specifiedHeight is <=0 then newHeight * proportion will also be -ve or 0, isn't it? Will it not cause problem? Am I missing something? Regards Prasanta On 9/5/2018 4:25 PM, Krishna Addepalli wrote: Hi All, The testfix turned out to be simpler than I thought. I just had to query the preferred size before making the frame visible, so that the image is rendered on screen properly, and now Robot is able to pick the color. Here is the modified webrev: HYPERLINK "http://cr.openjdk.java.net/%7Ekaddepalli/8208638/webrev01/"http://cr.openjdk.java.net/~kaddepalli/8208638/webrev01/ Thanks, Krishna From: Krishna Addepalli Sent: Wednesday, September 5, 2018 9:41 AM To: HYPERLINK "mailto:[email protected]"[email protected] Subject: Re: <Swing Dev> RFR: [12] JDK-8208638: Instead of circle rendered in appl window, but ellipse is produced JEditor Pane Hi All, I found an issue with the test, and am working on it to make it pass reliably. I was setting the size of the frame and then querying the preferred size, which makes it a non-test. I'm working to address it, meanwhile you could still review the fix itself. Thanks, Krishna From: Krishna Addepalli Sent: Wednesday, September 5, 2018 12:10 AM To: HYPERLINK "mailto:[email protected]"[email protected] Subject: RFR: [12] JDK-8208638: Instead of circle rendered in appl window, but ellipse is produced JEditor Pane Hi All, Please review a fix for JDK-8208638: https://bugs.openjdk.java.net/browse/JDK-8208638 Webrev: HYPERLINK "http://cr.openjdk.java.net/%7Ekaddepalli/8208638/webrev00/"http://cr.openjdk.java.net/~kaddepalli/8208638/webrev00/ JEditorPane supports loading HTML content, including images, and this bug is about image scaling when either of the width/height attributes are not specified in the HTML text. The problem is that scaling of the images in all cases was not handled properly. Here is the behavior that is observed in other browsers: 1. If both width and height are specified in html, then use them instead. 2. If both are not specified, then use the image dimensions. 3. If either one is specified, then proportionately adjust the other dimension to preserve the aspect ratio of the image. ImageView.java implementation was not handling the last case, which is added in the fix. The test is also fixed now, which was earlier relying on Robot.getPixelColor, which does not work reliably. A happy alternative was found, where in the "RootView" that is rendering the html content is retrieved from the JEditorPane, and its preferred span is queried, which should match the case specific width/height. Tested it on all platforms (Windows, Linux(Ubuntu) and Mac) and now it reliably passes. Thanks, Krishna
