On Fri, 24 Dec 2021 12:00:52 GMT, Aleksandr Veselov <d...@openjdk.java.net> 
wrote:

>> Perform scaling while converting sizes and coordinates to provide correct 
>> positions of accessible elements on HiDPI screen and make hit-test work 
>> properly. It uses FontRenderContext to receive display scale without API 
>> changes.
>
> Aleksandr Veselov has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Fix missing import

src/jdk.accessibility/windows/classes/com/sun/java/accessibility/internal/AccessBridge.java
 line 1617:

> 1615:                                     r.width = (int) Math.ceil(r.width * 
> at.getScaleX());
> 1616:                                     r.height = (int) Math.ceil(r.height 
> * at.getScaleY());
> 1617:                                 }

This logic will not work on the multiscreen configs when the monitors have 
different DPI, the logic should be similar to the 
SunGraphicsEnvironment.toDeviceSpace().
and probably the round logic should use Region.clipRound as well.

src/jdk.accessibility/windows/classes/com/sun/java/accessibility/internal/AccessBridge.java
 line 1768:

> 1766:             FontMetrics fm = acomp.getFontMetrics(acomp.getFont());
> 1767:             if (fm != null) {
> 1768:                 return fm.getFontRenderContext().getTransform();

I am not sure do we really update the FRC for the component when the DPI is 
changed?

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

PR: https://git.openjdk.java.net/jdk18/pull/72

Reply via email to