Multi monitor HIDPI in X11 compatibility mode

Nikita Gubarkov nikita.gubarkov at jetbrains.com
Thu Feb 2 22:47:40 UTC 2023


JetBrains Runtime has support for per-monitor scaling in X11 mode
implemented a few months ago.

At first I tried to use the GTK library for reading the scales as suggested
in https://bugs.openjdk.org/browse/JDK-8260270, but in a multi-monitor
environment it is always returning scale of the main display when running
with X11 backend.
The final solution was to connect to Wayland just to read the scaling
values and then do a huge refactoring to make AWT's X11-related code
respect these individual scaling values.
For coordinate conversions I took the same approach that was used in
Windows - https://github.com/openjdk/jdk/pull/375
There were some issues that I was unable to solve, like the window title
bar is always scaled with the main monitor's scale no matter what monitor
the window is on, the same with mouse cursor when it's over the window, but
overall it seems to work.

I can try porting this into OpenJDK and create a PR if needed.

JBR issue: https://youtrack.jetbrains.com/issue/JBR-5208
Code:
https://github.com/JetBrains/JetBrainsRuntime/commit/bf073b92b8803fb45c5934127b8f4a9f58e508a1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/wakefield-dev/attachments/20230203/6653c21d/attachment.htm>


More information about the wakefield-dev mailing list