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