JDK-8141096 : [Mac OS X] Some accelerators treated as QWERTY on non-QWERTY keyboards
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 7u45
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: os_x
  • Submitted: 2013-11-05
  • Updated: 2015-11-24
  • Resolved: 2015-11-24
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
Reported against several versions of JDK 7 between 7u11 and 7u45

ADDITIONAL OS VERSION INFORMATION :
Reported by several users against Mac OS X 10.8 and 10.9

EXTRA RELEVANT SYSTEM CONFIGURATION :
Non-QWERTY layout (example: AZERTY French keyboard)

A DESCRIPTION OF THE PROBLEM :
With Oracle JDK7 on Mac OS X, many modifier combinations trigger accelerators against QWERTY keyboard layout, even if the actual keyboard is not a QWERTY. The obvious example is the shortcut Ctrl-A triggerred on an AZERTY keyboard by the combination Ctrl-Q.

This is a major regression from Apple Java 6 for all people not using a QWERTY keyboard.

It is very weird because not all combinations seem impacted:

Standard input: OK (French keyboard layout AZERTY is respected. Typing an A gives an A :)
One-letter shortcuts: OK (Q)
Ctrl-letter: Bug (Ctrl-Z triggers Ctrl-W. The keyboard layout appears to be QWERTY)
Alt-letter: Bug (Alt-Q triggers Alt-A)
Shift-letter: OK (Shift-A)
Ctrl-Shift-letter seems OK
Alt-Shift-letter: Bug
Ctrl-Alt-Shift-letter: Bug

REGRESSION.  Last worked in version 6u45

ADDITIONAL REGRESSION INFORMATION:
Apple Java 6u51

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. On an AZERTY keyboard, press Ctrl-A to trigger an action that should be trigerred by Ctrl-A


EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
2. The action should be trigerred
ACTUAL -
3. The Ctrl-A action is not trigerred. If an action is bound to Ctrl-Q, this action is trigerred, and vice-versa.

REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
No workaround possible without a complete comprehension of this bug (the bug does only happen for some modifiers but not all of them)