@prsadhuk asked me to take over his pull request #1628, since I filed the bug 
an suggested this fix.

I thought the current behavior would be buggy, but actually the units are quite 
precise. I checked the size of a text in font-size of 1 in, and it really was 
approximately 1 inch. The problem is just that browsers behave differently.

Swing follows the CSS 2.1 spec: 
https://www.w3.org/TR/CSS21/syndata.html#length-units.
But in CSS 2.2, length units where redefined: 
https://www.w3.org/TR/CSS22/syndata.html#length-units.
Now `px` is also an absolute unit, and there are constant conversion factors 
between all absolute units.

The CSS 2.2 spec includes the following two notes regarding this change:

> Note that if the anchor unit is the pixel unit, the physical units might not 
> match their physical measurements. Alternatively if the anchor unit is a 
> physical unit, the pixel unit might not map to a whole number of device 
> pixels.

> Note that this definition of the pixel unit and the physical units differs 
> from previous versions of CSS. In particular, in previous versions of CSS the 
> pixel unit and the physical units were not related by a fixed ratio: the 
> physical units were always tied to their physical measurements while the 
> pixel unit would vary to most closely match the reference pixel. (This change 
> was made because too much existing content relies on the assumption of 96dpi, 
> and breaking that assumption breaks the content.)

So the spec changed the behavior to better support high-DPI devices with 
existing content, and that is exactly my intention with this PR as well.

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

Commit messages:
 - Fixed jcheck
 - Removed unnecessary imports
 - Convert tabs to spaces
 - Fix JDK-8231286

Changes: https://git.openjdk.java.net/jdk/pull/2223/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2223&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8231286
  Stats: 114 lines in 3 files changed: 100 ins; 6 del; 8 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2223.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2223/head:pull/2223

PR: https://git.openjdk.java.net/jdk/pull/2223

Reply via email to