Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8338041: Keyboard Navigation of JTable, Ctrl Shift RIGHT/LEFT doesn't follow native action in GTK L&F #20608

Closed
wants to merge 4 commits into from

Conversation

TejeshR13
Copy link
Contributor

@TejeshR13 TejeshR13 commented Aug 16, 2024

In JTable, keyboard navigation keys Ctrl Shift RIGHT/LEFT doesn't follow native actions of Linux. In native the actions are extended to end of selected columns cells either LEFT/RIGHT but in swing gtk look and feel the selection is extended to one cell to left/right. This might be taken as reference of Windows OS since the same is observed in Windows native. Hence I have update the actions for Ctrl Shift RIGHT & LEFT.
Added automated test too. The fix is tested in CI and its fine.


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8338041: Keyboard Navigation of JTable, Ctrl Shift RIGHT/LEFT doesn't follow native action in GTK L&F (Bug - P4)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/20608/head:pull/20608
$ git checkout pull/20608

Update a local copy of the PR:
$ git checkout pull/20608
$ git pull https://git.openjdk.org/jdk.git pull/20608/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 20608

View PR using the GUI difftool:
$ git pr show -t 20608

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/20608.diff

Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Aug 16, 2024

👋 Welcome back tr! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Aug 16, 2024

@TejeshR13 This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8338041: Keyboard Navigation of JTable, Ctrl Shift RIGHT/LEFT doesn't follow native action in GTK L&F

Reviewed-by: honkar, prr, abhiscxk

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 50 new commits pushed to the master branch:

  • 5671f83: 8338785: The java.awt.datatransfer.SystemFlavorMap#FLAVOR_MAP_KEY field is not used
  • 32b3d70: 8338925: ProblemList runtime/interpreter/LastJsrTest.java on linux-all
  • 5d12ac3: 8337715: Update --release 23 symbol information for JDK 23 build 37
  • 23dc3b0: 8324048: (fc) Make FileKey fields final
  • a461369: 8338700: AttributeMapper type parameter should be bounded by Attribute
  • 916f1aa: 8329756: [macos] "javax/swing/JTable/KeyBoardNavigation.java" fail because most combinations of navigational keys with the Ctrl key do not work
  • 21d1e4d: 8338819: JFR: Internal events causes crash when no other events are in use
  • 965dd1a: 8333334: C2: Make result of Node::dominates more precise to enhance scalar replacement
  • 69bd227: 8338417: Explicitly pin a virtual thread before acquiring the JFR string pool monitor
  • fead3cf: 8338745: Intrinsify Continuation.pin() and Continuation.unpin()
  • ... and 40 more: https://git.openjdk.org/jdk/compare/9775d57168695dc0d758e017fe5069d93d593f3e...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the rfr Pull request is ready for review label Aug 16, 2024
@openjdk
Copy link

openjdk bot commented Aug 16, 2024

@TejeshR13 The following label will be automatically applied to this pull request:

  • client

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@mlbridge
Copy link

mlbridge bot commented Aug 16, 2024

Webrevs

Copy link
Contributor

@DamonGuy DamonGuy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change itself works fine. I agree with the test changes submitted already. Out of curiosity, what native app did you compare it to when you checked for native behavior?

@DamonGuy
Copy link
Contributor

Also probably worth fixing the Keyborad typo in the title and JBS issue to Keyboard.

@prrace
Copy link
Contributor

prrace commented Aug 19, 2024

Also probably worth fixing the Keyborad typo in the title and JBS issue to Keyboard.

That was the first thing I noticed about this PR :-). I fixed the JBS issue.

@TejeshR13
Copy link
Contributor Author

The change itself works fine. I agree with the test changes submitted already. Out of curiosity, what native app did you compare it to when you checked for native behavior?

Libre.

@TejeshR13 TejeshR13 changed the title 8338041: Keyborad Navigation of JTable, Ctrl Shift RIGHT/LEFT doesn't follow native action in GTK L&F 8338041: Keyboard Navigation of JTable, Ctrl Shift RIGHT/LEFT doesn't follow native action in GTK L&F Aug 20, 2024
Copy link
Contributor

@honkar-jdk honkar-jdk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix looks good and works similar to native app - Libre Calc on linux.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Aug 22, 2024
@@ -1058,15 +1058,15 @@ public Object createValue(UIDefaults table) {
"KP_RIGHT", "selectNextColumn",
"shift RIGHT", "selectNextColumnExtendSelection",
"shift KP_RIGHT", "selectNextColumnExtendSelection",
"ctrl shift RIGHT", "selectNextColumnExtendSelection",
"ctrl shift RIGHT", "selectLastColumnExtendSelection",
"ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should KP_RIGHT also be changed to selectLastColumnExtendSelection? Should keypad shortcuts be identical to the arrow key shortcuts?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch.

Copy link
Contributor Author

@TejeshR13 TejeshR13 Aug 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually all KP shortcuts are miss aligned with native. So I thought of handling it separately.

"ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
"ctrl RIGHT", "selectNextColumnChangeLead",
"ctrl KP_RIGHT", "selectNextColumnChangeLead",
"LEFT", "selectPreviousColumn",
"KP_LEFT", "selectPreviousColumn",
"shift LEFT", "selectPreviousColumnExtendSelection",
"shift KP_LEFT", "selectPreviousColumnExtendSelection",
"ctrl shift LEFT", "selectPreviousColumnExtendSelection",
"ctrl shift LEFT", "selectFirstColumnExtendSelection",
"ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here as well

Copy link
Contributor

@kumarabhi006 kumarabhi006 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me now.

@TejeshR13
Copy link
Contributor Author

/integrate

@openjdk
Copy link

openjdk bot commented Aug 28, 2024

Going to push as commit 8e88da0.
Since your change was applied there have been 78 commits pushed to the master branch:

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Aug 28, 2024
@openjdk openjdk bot closed this Aug 28, 2024
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Aug 28, 2024
@openjdk
Copy link

openjdk bot commented Aug 28, 2024

@TejeshR13 Pushed as commit 8e88da0.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client [email protected] integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

6 participants