RFR: 8281723: Spinner with split horizontal arrows and a border places right arrow incorrectly

John Hendrikx jhendrikx at openjdk.java.net
Wed Mar 9 07:43:41 UTC 2022


I added a test case for `SpinnerSkin` that checks the arrow positioning.

While adding the tests I discovered more problems with the positioning aside from the one mentioned in the JBS ticket.

1) Vertical split arrow placement also forgot to take the padding into account while placing the decrement arrow button -- I've taken the liberty to fix that problem as well in the same PR.

2) When arrows are placed next to each other either on the right or left, the arrow widths are not normalized to be the width of the widest arrow.  All other placements will normalize either the width or height, except for these two.  Specifically, when the arrows are **split** on the left and right they **are** normalized to the same width.  

For point 2, here is the problem illustrated with actual widths on left and layout result on right:

     [ <----- ] [ -> ] [ spinner ]       -->          [ <----- ] [ -> ] [ spinner ]
     [ spinner ] [ <----- ] [ -> ]       -->          [ spinner ] [ <----- ] [ -> ]

While for split horizontal it does normalize the width to that of the widest arrow, and so layout becomes:

     [ <----- ] [ spinner ] [ -> ]       -->          [ <----- ] [ spinner ] [   ->   ]

While I'm here I could fix this as well, and adjust the test case to match.

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

Commit messages:
 - 8281723: Fix arrow placement errors in SpinnerSkin

Changes: https://git.openjdk.java.net/jfx/pull/748/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=748&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8281723
  Stats: 146 lines in 2 files changed: 144 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/jfx/pull/748.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/748/head:pull/748

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


More information about the openjfx-dev mailing list