RFR: 8369836: Update HeaderBar API [v16]

Michael Strauß mstrauss at openjdk.org
Thu Jan 8 18:54:42 UTC 2026


On Thu, 8 Jan 2026 17:09:25 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> Michael Strauß has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 20 additional commits since the last revision:
>> 
>>  - move-modal message loop
>>  - Merge branch 'master' into headerbar-update
>>  - update copyright year to 2026
>>  - use native constants
>>  - typo
>>  - align Linux/Windows behavior when clicking on resize border
>>  - documentation
>>  - Unspecified HeaderDragType is behind top resize border
>>  - documentation
>>  - documentation
>>  - ... and 10 more: https://git.openjdk.org/jfx/compare/fe76b5e9...7a18278f
>
> modules/javafx.graphics/src/main/native-glass/win/GlassWindow.cpp line 689:
> 
>> 687:         // We don't consume this message, so it will be handled as usual in HandleViewMouseEvent()
>> 688:         // to generate a normal JavaFX event. Note that HandleViewMouseEvent() calls SetCapture().
>> 689:         case WM_LBUTTONDOWN:
> 
> Do we need to handle any other mouse events here (wheel, horizontal scroll, etc)?
> 
> I do see the horizontal scroll happening in the client area outside of the header bar when I first click and hold the left mouse button inside the header bar text field (i.e. inside a drag event), but this behavior is exhibited elsewhere.

You _should_ see mouse events not related to the press-drag-release gesture.

However, I've changed a tiny detail: when you press the left mouse button on the title bar and then move the cursor, you'll get a small number of `MOUSE_DRAGGED` events until the cursor leaves the "dead zone" and the move-modal loop starts. Once the move-modal loop has started, you won't receive events related to the window drag gesture.

I think that the few drag events at the beginning of a PDR gesture are just noise, therefore I've changed it so that from the perspective of the application, a PDR gesture on the title bar only produces `MOUSE_PRESSED` followed by `MOUSE_RELEASED`, but no drag events in-between.

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

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


More information about the openjfx-dev mailing list