<AWT Dev> [12] Review Request: 8214918 Unify GraphicsEnvironment.getCenterPoint()/getMaximumWindowBounds() across the platforms

Phil Race philip.race at oracle.com
Thu Dec 20 18:57:31 UTC 2018


The synopsis made me think this was refactoring.
But when I read it, it seems to be proposing removing the ability to
centre a window on a Xinerama desktop, with the principal justification that
this was only ever something that worked on Solaris.

Is this absolutely necessary ?

Does that mean this (xinerama centering) is fundamentally unsupportable 
on Linux ?
Don't you need to update the docs / referenced spec ?

-phil.


On 12/6/18 9:26 AM, Sergey Bylokhov wrote:
> Hello.
> Please review the fix for jdk 12.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8214918
> Webrev: http://cr.openjdk.java.net/~serb/8214918/webrev.00
>
> In the fix for JDK-8076313 I need to implement possibility of switch 
> between xinerama and non-xinerama modes at runtime. As a separate part 
> I would like to investigate the usage of 
> X11GraphicsEnvironment.runningXinerama() and replace it by some other 
> generic for single/multi-screen solution.
>
> This bug is about one of the place where the flag above is used.
>
> In jdk 1.4 two new methods were added to the GraphicsEnvironment class:
>  - getCenterPoint()
>  - getMaximumWindowBounds()
> see 
> https://docs.oracle.com/javase/7/docs/technotes/guides/awt/1.4/AWTChanges.html#windowCentering
>
> Take a look to this descriptions from the link above:
> "X-Window, Xinerama
> All monitors share a single virtual coordinate space, as on Microsoft 
> Windows. However, it is possible for the user to specify through X 
> resources where windows should be centered. If these resources are 
> set, getCenterPoint reflects their value. Otherwise, it returns the 
> point at the center of the virtual coordinate space. (In practice, 
> this will almost always be set - CDE sets it by default.)"
>
> Since the case above was implemented on the Solaris, and uses an 
> extension of the xinerama, I suggest to remove this and align 
> implementation across the platforms:
>  - getCenterPoint returns the coordinates of the center of the primary 
> display for all platforms
>  - getMaximumWindowBounds returns the bounds of the primary display 
> minus display insets for all platforms
>
>



More information about the awt-dev mailing list