<AWT Dev> [PATCH] 8043869 [macosx] java -splash does not honor @2x hi dpi notation for retina support

Alexandr Scherbatiy alexandr.scherbatiy at oracle.com
Mon May 30 18:48:32 UTC 2016


   Hello Robin,

   Your bug report has been recorded under id:
     JDK-8158178 java.awt.SplashScreen.getSize() returns incorrect size 
for high dpi splash screens
       https://bugs.openjdk.java.net/browse/JDK-8158178

   Thank you for the contribution. The described issue has been fixed in 
JDK 9 with the fix
     JDK-8145174 HiDPI splash screen support on Linux
       http://hg.openjdk.java.net/jdk9/client/jdk/rev/e3fd20ff65cd

   But the patch for the test definitely also can be contributed.
   I have loaded it to: 
http://cr.openjdk.java.net/~alexsch/robin.stevens/8158178/webrev.00

   Could you resend the review request with the title "[9] Review 
request for BugID bug summary" and links to bug and webrev to the 
awt-dev alias?

   Thanks,
   Alexandr.

On 5/30/2016 8:05 PM, Robin Stevens wrote:
> Hello,
>
> the patch for JDK-8043869 (introduced with change 
> http://cr.openjdk.java.net/~alexsch/8043869/webrev.03/ 
> <http://cr.openjdk.java.net/%7Ealexsch/8043869/webrev.03/>) contains a 
> bug.
> The java.awt.SplashScreen#getSize returns an incorrect height value 
> when a hi dpi splash screen is shown. There is no bug available yet in 
> the public JIRA bug tracker, although I submitted a bug report for 
> this through http://bugs.java.com/ .
>
> The following patch fixes that problem, and updates the test to detect 
> the problem:
>
> diff --git a/src/share/classes/java/awt/SplashScreen.java 
> b/src/share/classes/java/awt/SplashScreen.java
> --- a/src/share/classes/java/awt/SplashScreen.java
> +++ b/src/share/classes/java/awt/SplashScreen.java
> @@ -250,7 +250,7 @@
>              assert scale > 0;
>              if (scale > 0 && scale != 1) {
>                  bounds.setSize((int) (bounds.getWidth() / scale),
> -                        (int) (bounds.getWidth() / scale));
> +                        (int) (bounds.getHeight() / scale));
>              }
>              return bounds;
>          }
> diff --git 
> a/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java 
> b/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java
> --- 
> a/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java
> +++ 
> b/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java
> @@ -93,6 +93,15 @@
>          int screenX = (int) splashBounds.getCenterX();
>          int screenY = (int) splashBounds.getCenterY();
>
> +        if(splashBounds.width != IMAGE_WIDTH){
> +            throw new RuntimeException(
> +                    "SplashScreen#getBounds has wrong width");
> +        }
> +        if(splashBounds.height != IMAGE_HEIGHT){
> +            throw new RuntimeException(
> +                    "SplashScreen#getBounds has wrong height");
> +        }
> +
>          Robot robot = new Robot();
>          Color splashScreenColor = robot.getPixelColor(screenX, screenY);
>
>
> Diff was created against this revision: 
> http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/rev/4d6c03fb1039
>
> Note that this is my first contribution. I think I followed all the 
> guidelines from http://openjdk.java.net/contribute/ . Please let me 
> know if I did anything wrong.
>
> Kind regards,
>
> Robin



More information about the awt-dev mailing list