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