On Linux, we are currently use XRRSetScreenConfigAndRate to change the display 
mode. This works in most cases, except for some VNC-configured hosts, where the 
display change may not occur.
One of the conformance tests fails on these hosts.

It was discovered, that the xrandr utility app works fine on these hosts and 
uses the Crtc and Output Randr APIs, which provide more fine-grained control 
over display settings.

This changeset utilizes the Crtc and Output Randr APIs to change the display 
mode.

Currently, changing the display mode is only [available when running a single 
screen](https://github.com/openjdk/jdk/blob/a86dd56de34f730b42593236f17118ef5ce4985a/src/java.desktop/unix/classes/sun/awt/X11GraphicsDevice.java#L365).
This limitation remains, but we may remove it in the future. A separate issue 
[has been filed](https://bugs.openjdk.org/browse/JDK-8361968) for this purpose.

The `awt.x11useOldConfigDisplayMode` system property enables the old behavior. 
Perhaps there's a better name for it.

Testing looks good on VNC and local machines.

-------------

Commit messages:
 - initial

Changes: https://git.openjdk.org/jdk/pull/26268/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26268&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8354415
  Stats: 354 lines in 3 files changed: 346 ins; 1 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/26268.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26268/head:pull/26268

PR: https://git.openjdk.org/jdk/pull/26268

Reply via email to