Integrated: 8207333: [Linux, macOS] Column sorting is triggered always after context menu request on table header

Jose Pereda jpereda at openjdk.org
Wed May 28 14:57:59 UTC 2025


On Tue, 1 Apr 2025 17:31:14 GMT, Jose Pereda <jpereda at openjdk.org> wrote:

> Note: The JBS issue [JDK-8207333](https://bugs.openjdk.org/browse/JDK-8207333) refers to Linux, but it happens on macOS too. 
> 
> When a TableColumn has a ContextMenu, if the user right clicks on the tableColumnHeader, the ContextMenu shows up, but, as described on the issue, on macOS and Linux, the table gets sorted as well.
> 
> Currently, `TableColumnHeader#mouseReleasedHandler` checks for `MouseEvent::isPopupTriggered`, but it doesn't have a check on `mousePressed`. However,  it can be seen that a right click on the header has the following values for `MouseEvent:: isPopupTriggered` on the different platforms and mouse pressed and released events:
> 
> | isPopupTriggered on: | Windows  | macOS | Linux |
> | ------------- | ------------- | ------------- | ------------- |
> | mousePressed  | false  | true | true |
> | mouseReleased  | true  | false | false |
> 
> Also, the JavaDoc for `MouseEvent::isPopupTriggered` clearly states that:
> 
>> **Note**: Popup menus are triggered differently on different systems. Therefore, `popupTrigger` should be checked in both `onMousePressed` and `mouseReleased` for proper cross-platform functionality.
> 
> Therefore, this PR adds a check to `MouseEvent::isPopupTrigger` in the mouse pressed event, that can be used later on to cancel the header sorting when the mouse released event happens.
> 
> Also a system test has been added. It fails on macOS and Linux, and passes on Windows before this PR, and passes on the three platforms with this PR.

This pull request has now been integrated.

Changeset: 7e8eff99
Author:    Jose Pereda <jpereda at openjdk.org>
URL:       https://git.openjdk.org/jfx/commit/7e8eff9983764ee4a896e0748ae357718297d5be
Stats:     199 lines in 2 files changed: 195 ins; 0 del; 4 mod

8207333: [Linux, macOS] Column sorting is triggered always after context menu request on table header

Reviewed-by: angorya, zelmidaoui

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

PR: https://git.openjdk.org/jfx/pull/1754


More information about the openjfx-dev mailing list