BorderPane's measurement and layout calculations are not correct when 
pixel-snapping is enabled. Here is what's wrong with BorderPane, and what 
consequently needs to be fixed:

1. Insets are not snapped:
   * all measurement methods use raw insets
   * `layoutChildren()` also uses raw insets
3. Content-biased children use the wrong dependent dimension:
   * top and bottom children call `prefHeight(adjustedWidth)` before their 
final width is established; left and right have the same problem with height
   * measurement and layout can disagree because
       - constrained measurement passes the pane's total width/height without 
first removing its snapped insets
       - `getAreaWidth` uses `fillHeight=false`, while left/right/center layout 
uses `fillHeight=true`
5. Arithmetic results are not re-snapped.

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

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

Commit messages:
 - fix
 - tests

Changes: https://git.openjdk.org/jfx/pull/2262/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2262&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8390605
  Stats: 266 lines in 2 files changed: 151 ins; 31 del; 84 mod
  Patch: https://git.openjdk.org/jfx/pull/2262.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2262/head:pull/2262

PR: https://git.openjdk.org/jfx/pull/2262

Reply via email to