> As discussed in the [JBS 
> issue](https://bugs.openjdk.java.net/browse/JDK-8199592), when snapping an 
> already snapped value (either intentionally or by  mistake), the result 
> should be the same, otherwise we'll be jumping unnecessary from a valid pixel 
> to another pixel.
> 
> This PR provides a fix to `snapSizeXX` methods used in `Region`, which 
> ultimately use `Math.ceil`, by subtracting an epsilon value to scaled value 
> before ceiling, to ensure snapping a snapped value gives the same value.
> 
> A test to verify `snapSizeX` and `snapSizeY` with 1000 random values, and 6 
> different UI scales is provided.
> For the 1.0, 1.25, 1.5 and 2.0 UI scales, the current approach works fine. 
> Only for 1.75 and the random 1.374562997 value fails (the test fails for 
> around 2% of the values with 1.75 and around 10% with 1.374562997).
> With the proposed fix, it doesn't fail at all.

Jose Pereda has updated the pull request incrementally with one additional 
commit since the last revision:

  Extend fix to scaledFloor, thought the method is currently unused. No tests 
will be provided.

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

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/336/files
  - new: https://git.openjdk.java.net/jfx/pull/336/files/988afefb..216868f1

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=336&range=03
 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=336&range=02-03

  Stats: 11 lines in 1 file changed: 10 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jfx/pull/336.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/336/head:pull/336

PR: https://git.openjdk.java.net/jfx/pull/336

Reply via email to