<AWT Dev>  JDK-8196006: java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java fails
shashidhara.veerabhadraiah at oracle.com
Sat Feb 3 08:59:09 UTC 2018
Hi Sergey, It looks a fix went in awt_Win32GraphicsDevice.cpp updating the size scaling under the bug JDK-8159062. I will get back with more details on it on Monday.
Thanks and regards,
From: Sergey Bylokhov
Sent: Saturday, February 3, 2018 1:38 PM
To: Shashidhara Veerabhadraiah <shashidhara.veerabhadraiah at oracle.com>; awt-dev at openjdk.java.net
Subject: Re: <AWT Dev>  JDK-8196006: java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java fails
On 02/02/2018 23:50, Shashidhara Veerabhadraiah wrote:
> Hi Sergey, Main reason to change the test to run on the main screen is that the test runs thro's different graphics configurations whereas keeping the AWT frame in the same main screen. This leads to wrong calculations. Also for the intent of the test it is not required to run on all the graphics configurations.
Yes and it is one of the use-cases tested in the test: the frame located on one screen should be able to maximize to some other screen.
> The problem is that getBounds() of the GraphicsConfiguration class returns the scaled size which is used as an initial input to set the maximized bounds by calling setMaximizedBounds(). As you said, frame.getBounds() returns the user space size. Hence we would need to transform it.
It sounds like a bug. At least on mac it works as expected on the retina screen. In the GraphicsConfiguration.getBounds() there are also attempts to scale down coordinates on linux/windows, it is unclear why it does not work.
> Thanks and regards,
> -----Original Message-----
> From: Sergey Bylokhov
> Sent: Saturday, February 3, 2018 12:20 PM
> To: Shashidhara Veerabhadraiah <shashidhara.veerabhadraiah at oracle.com>; awt-dev at openjdk.java.net
> Subject: Re: <AWT Dev>  JDK-8196006: java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java fails
> Hi, Shashi.
> Before this fix this test was executed on all screens on the system.
> Why have you changed it to test only main screen?
> If I understand the code correctly the test checks the size which is passed to frame.setMaximizedBounds() and the size which is returned by frame.getBounds(). In both cases the size should be in the users space(not in pixels). Why additional transform(added in the fix) is necessary?
> On 01/02/2018 20:39, Shashidhara Veerabhadraiah wrote:
>> Hi All, Please review a fix for the test bug.
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8196006
>> Webrev: http://cr.openjdk.java.net/~sveerabhadra/8196006/webrev.00/
>> Summary: This test fails on a hidpi monitor whereas passes on a normal
>> monitor. Now the calculations are altered to take care of the scaling
>> factor of the primary display unit. Now this test passes on both
>> normal and hidpi monitors.
>> Thanks and regards,
> Best regards, Sergey.
Best regards, Sergey.
More information about the awt-dev