<Swing Dev> Review Request for 7126823 : JInternalFrame.getNormalBounds() returns bad value after iconify/deiconify
Semyon Sadetsky
semyon.sadetsky at oracle.com
Thu Feb 18 09:03:21 UTC 2016
Hi Prem,
In the test
getLocationOnScreen(), getBounds() and getNormalBounds() should be
called on EDT for Swing components.
--Semyon
On 2/15/2016 11:51 AM, Prem Balakrishnan wrote:
>
> Hi Rajeev,
>
> Test updated as per your comments.
>
> *Webrev:*http://cr.openjdk.java.net/~arapte/prem/7126823/webrev.02/
> <http://cr.openjdk.java.net/%7Earapte/prem/7126823/webrev.02/>
>
> Regards,
> Prem
>
> *From:*Rajeev Chamyal
> *Sent:* Monday, February 15, 2016 12:00 PM
> *To:* Prem Balakrishnan
> *Cc:* Sergey Bylokhov; Semyon Sadetsky; Alexander Scherbatiy; Ambarish
> Rapte; swing-dev at openjdk.java.net
> *Subject:* RE: <Swing Dev> Review Request for 7126823 :
> JInternalFrame.getNormalBounds() returns bad value after iconify/deiconify
>
> Hello Prem,
>
> 1)UI should be created in a swing thread so please update the createUI
> method to use a swing thread.
>
> 2)Also please use SwingUtilities.invokeAndWait instead of
> SwingUtilities.invokeLater.
>
> Regards,
>
> Rajeev Chamyal
>
> *From:* Prem Balakrishnan
> *Sent:* 11 February 2016 12:49
> *To:* Rajeev Chamyal
> *Cc:* Sergey Bylokhov; Semyon Sadetsky; Alexander Scherbatiy; Ambarish
> Rapte; swing-dev at openjdk.java.net <mailto:swing-dev at openjdk.java.net>
> *Subject:* RE: <Swing Dev> Review Request for 7126823 :
> JInternalFrame.getNormalBounds() returns bad value after iconify/deiconify
>
> Hi Rajeev,
>
> I have tested for all supported LAF’s across all platforms(Windows,
> Linux and Mac)
>
> Test updated for the same.
>
> *Webrev:* http://cr.openjdk.java.net/~arapte/prem/7126823/webrev.01/
> <http://cr.openjdk.java.net/%7Earapte/prem/7126823/webrev.01/>
>
> Regards,
>
> Prem
>
> *From:*Rajeev Chamyal
> *Sent:* Wednesday, February 10, 2016 2:00 PM
> *To:* Prem Balakrishnan
> *Cc:* Sergey Bylokhov; Semyon Sadetsky; Alexander Scherbatiy; Ambarish
> Rapte; swing-dev at openjdk.java.net <mailto:swing-dev at openjdk.java.net>
> *Subject:* RE: <Swing Dev> Review Request for 7126823 :
> JInternalFrame.getNormalBounds() returns bad value after iconify/deiconify
>
> Hello Prem,
>
> Did you test this fix for other LAF’s as well.
>
> Regards,
>
> Rajeev Chamyal
>
> *From:* Prem Balakrishnan
> *Sent:* 09 February 2016 14:40
> *To:* Sergey Bylokhov; Semyon Sadetsky; Alexander Scherbatiy; Ambarish
> Rapte; swing-dev at openjdk.java.net <mailto:swing-dev at openjdk.java.net>;
> awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>
> *Subject:* <Swing Dev> Review Request for 7126823 :
> JInternalFrame.getNormalBounds() returns bad value after iconify/deiconify
>
> Hi*,*
>
> Please review fix for JDK9,
>
> *Bug: *https://bugs.openjdk.java.net/browse/JDK-7126823
>
> *Webrev:* http://cr.openjdk.java.net/~arapte/prem/7126823/webrev.00/
> <http://cr.openjdk.java.net/%7Earapte/prem/7126823/webrev.00/>
>
> *Issue:*
>
> JInternalFrame.getNormalBounds() returns bad value after iconify/deiconify
>
> *Cause:*
>
> Regression: due to 4424247: DefaultDesktopManager does not handle
> InternalFrame state changes as expected.
>
> https://bugs.openjdk.java.net/browse/JDK-4424247 related to
> https://bugs.openjdk.java.net/browse/JDK-4900778
>
> *Fix:*
>
> DefaultDesktopManager.java**
>
> setNormalBounds(getBounds()); call removed from
> iconifyFrame(JInternalFrame f) method.
>
> *Justification:*
>
> This fix is not breaking any of the previous fix i.e., related to
> 4424247 and 4900778.
> (all previous scenarios are tested and validated with the current fix)
>
> In JInternalFrame.java
>
> getNormalBounds() returns getBounds() when normalBounds is NULL,
>
> Hence no need to setNormaBounds externally.
>
> public Rectangle getNormalBounds() {
>
> /* we used to test (!isMaximum) here, but since this
>
> method is used by the property listener for the
>
> IS_MAXIMUM_PROPERTY, it ended up getting the wrong
>
> answer... Since normalBounds get set to null when the
>
> frame is restored, this should work better */
>
> if (normalBounds != null) {
>
> return normalBounds;
>
> } else {
>
> return getBounds();
>
> }
>
> }
>
> As per Javadoc:
> public Rectangle getNormalBounds()
> If the JInternalFrame is not in maximized state, returns getBounds();
> otherwise, returns the bounds that the JInternalFrame would be
> restored to.
>
> In maximizeFrame() , normalBounds is set to a value which is not NULL,
> i.e., setNormalBounds(getBounds());
> In minimizeFrame(), normalBounds is set to NULL, i.e.,
> setNormalBounds(null);
> NormalBounds should NOT be set elsewhere.
>
> *Test:*
>
> Integrated test for current bug and regression.
>
> Regards,
> Prem
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20160218/2d732835/attachment.html>
More information about the swing-dev
mailing list