RFR: 8369836: Update HeaderBar API [v13]

Andy Goryachev angorya at openjdk.org
Tue Jan 6 22:03:11 UTC 2026


On Sun, 4 Jan 2026 01:45:10 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> The `HeaderBar` control currently has three areas: `leading`, `center`, and `trailing`. Additionally, there's `leftSystemInset` and `rightSystemInset`, which are not RTL adjusted. I've come to the understanding that there is no particularly good reason for this, because every time you would want to use this information for layout purposes, it should also be adjusted for RTL.
>> 
>> With this in mind, there are three changes for the `HeaderBar` control:
>> 1. Rename `leading` to `left`, and `trailing` to `right`, which aligns the terminology with `BorderPane`.
>> 2. Adjust `leftSystemInset` and `rightSystemInset` for RTL.
>> 3. Make `leftSystemInset`, `rightSystemInset`, and `minSystemHeight` attached properties for `Stage`.
>> 
>> With this change, the `HeaderBar` control is more semantically consistent and easier to use, and the renamed `left` and `right` areas now show its close relationship with `BorderPane`.
>> 
>> In addition to that, two new `HeaderDragType` constants are added:
>> * `TRANSPARENT`: when set on a node, excludes the node from draggable-area hit testing
>> * `TRANSPARENT_SUBTREE`: the same, but also applies to the node's subtree
>
> Michael Strauß has updated the pull request incrementally with one additional commit since the last revision:
> 
>   align Linux/Windows behavior when clicking on resize border

modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/GtkWindow.java line 278:

> 276:             HT_UNSPECIFIED,
> 277:             HT_CAPTION,
> 278:             HT_CLIENT

would it be better to declare int constants directly, especially since they are linked to the native declarations?

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1936#discussion_r2666426696


More information about the openjfx-dev mailing list