On Tue, 16 Sep 2025 17:22:39 GMT, Dirk Lemmermann <[email protected]> wrote:

>> Fix for regression in TabPane size calculation caused by 
>> https://bugs.openjdk.org/browse/JDK-8350149 (#1723) between versions 25-ea+8 
>> and 25-ea+10
>> 
>> In Region several height calculations functions were altered to match the 
>> behavior and options of their horizontal counterparts to solve discrepancies 
>> between the behavior of vertical biased layouts and horizontal biased 
>> layouts, which other than their axis, should behave identical.
>> 
>> The height calculations would take a width provided by the caller, but if 
>> unavailable (set to -1) and the child was biased, it would just 
>> automatically query the child's preferred width and use that as the 
>> dependent width.
>> 
>> In contrast, the horizontal functions would only do this if a height was 
>> provided by the caller (not -1), and would only override this value if the 
>> property fillHeight was false (in which case it would query the child's 
>> height directly).
>> 
>> With the change in 
>> [JDK-8350149](https://bugs.openjdk.org/browse/JDK-8350149), the vertical 
>> calculations operate the same as the horizontal ones, as this is generally 
>> more flexible. However, the automatic behavior to query the child's size if 
>> the dependent size given was set to -1 is no longer there (as this behavior 
>> isn't how biased calculations should work).
>> 
>> The TabPaneSkin has chosen to directly call several width/height functions 
>> without obeying the content bias contract, which says that in case of bias, 
>> the dependent size must be calculated first and then passed to the size 
>> calculation one is interested in.
>> 
>> (As an aside, if TabPaneSkin had elected to put all tabs in a single 
>> StackPane, then StackPane would have correctly done these calculations, but 
>> digging into why it is done this way, with each individual Tab wrapped in 
>> its own Node (also a StackPane), is a bit out of scope for this fix).
>> 
>> As it is, TabPaneSkin should check the bias of the tab it is doing 
>> calculations for, and if biased, should first query the dependent size 
>> before triggering the size calculation it is interested in.
>
> Can't wait for this one to get merged. It's the only thing stopping me from 
> upgrading.

we need one more review.  join us, @dlemmermann !  :-)

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

PR Comment: https://git.openjdk.org/jfx/pull/1900#issuecomment-3299691441

Reply via email to