Bug 257761 - Editor shortcuts using Ctrl + Alt + Shift + letter broken
Editor shortcuts using Ctrl + Alt + Shift + letter broken
Status: RESOLVED FIXED
Product: java
Classification: Unclassified
Component: Refactoring
8.1
PC Other
: P2 (vote)
: Dev
Assigned To: Svata Dedic
issues@java
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2016-01-29 14:46 UTC by bolsover
Modified: 2017-05-24 19:38 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
:


Attachments
Screen Grab (30.67 KB, image/png)
2016-01-29 14:46 UTC, bolsover
Details

Note You need to log in before you can comment on or make changes to this bug.
Description bolsover 2016-01-29 14:46:17 UTC
Created attachment 158288 [details]
Screen Grab

Product Version: NetBeans IDE 8.1 (Build 201510222201)
Java: 1.8.0_72; Java HotSpot(TM) 64-Bit Server VM 25.72-b15
Runtime: Java(TM) SE Runtime Environment 1.8.0_72-b15
System: Windows 10 version 10.0 running on amd64; Cp1252; en_GB (nb)


Editor shortcuts in the form  Ctrl + Alt + Shift + letter are broken.

On W10, these shortcuts will insert an accented letter at the cursor location (such as 'É' when using  Ctrl + Alt + Shift + E). The invoked utility may then fail with some error dialog.

Attachment to illustrate.
Comment 1 Jiri Prox 2016-03-03 14:16:37 UTC
Reproducible
but only with en-UK keyboard. en-US keyboard works fine
Comment 2 Miloslav Metelka 2016-06-08 13:52:51 UTC
Could it be tested in a plain Swing app using e.g. https://netbeans.org/projects/editor/downloads/download/KeyEventDebug.jar
and ran with "java -jar KeyEventDebug.jar" ?
Thanks.
Comment 3 bolsover 2016-06-08 14:16:59 UTC
java -jar KeyEventDebug.jar

java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

Windows 10 x64, English UK keyboard

Output with keys Ctrl + Alt + Shift + e


--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=17,keyText=Ctrl,keyChar=Undefined keyChar,modifiers=Ctrl,extModifiers=Ctrl,keyLocation=KEY_LOCATION_LEFT,rawCode=17,primaryLevelUnicode=0,scancode=29,extendedKeyCode=0x11] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=18,keyText=Alt,keyChar=Undefined keyChar,modifiers=Ctrl+Alt,extModifiers=Ctrl+Alt,keyLocation=KEY_LOCATION_LEFT,rawCode=18,primaryLevelUnicode=0,scancode=56,extendedKeyCode=0x12] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=16,keyText=Shift,keyChar=Undefined keyChar,modifiers=Ctrl+Alt+Shift,extModifiers=Ctrl+Alt+Shift,keyLocation=KEY_LOCATION_LEFT,rawCode=16,primaryLevelUnicode=0,scancode=42,extendedKeyCode=0x10] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=16,keyText=Shift,keyChar=Undefined keyChar,modifiers=Ctrl+Alt+Shift,extModifiers=Ctrl+Alt+Shift,keyLocation=KEY_LOCATION_LEFT,rawCode=16,primaryLevelUnicode=0,scancode=42,extendedKeyCode=0x10] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=16,keyText=Shift,keyChar=Undefined keyChar,modifiers=Ctrl+Alt+Shift,extModifiers=Ctrl+Alt+Shift,keyLocation=KEY_LOCATION_LEFT,rawCode=16,primaryLevelUnicode=0,scancode=42,extendedKeyCode=0x10] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=69,keyText=E,keyChar='É',modifiers=Ctrl+Alt+Shift,extModifiers=Ctrl+Alt+Shift,keyLocation=KEY_LOCATION_STANDARD,rawCode=69,primaryLevelUnicode=101,scancode=18,extendedKeyCode=0x45] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='É',modifiers=Shift+Alt Graph,extModifiers=Shift+Alt Graph,keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x0] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=69,keyText=E,keyChar='É',modifiers=Ctrl+Alt+Shift,extModifiers=Ctrl+Alt+Shift,keyLocation=KEY_LOCATION_STANDARD,rawCode=69,primaryLevelUnicode=101,scancode=18,extendedKeyCode=0x45] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=16,keyText=Shift,keyChar=Undefined keyChar,modifiers=Ctrl+Alt,extModifiers=Ctrl+Alt,keyLocation=KEY_LOCATION_LEFT,rawCode=16,primaryLevelUnicode=0,scancode=42,extendedKeyCode=0x10] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=17,keyText=Ctrl,keyChar=Undefined keyChar,modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_LEFT,rawCode=17,primaryLevelUnicode=0,scancode=29,extendedKeyCode=0x11] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
--- KEY EVENT ------------------------------------------------------------------
java.awt.event.KeyEvent[KEY_RELEASED,keyCode=18,keyText=Alt,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=18,primaryLevelUnicode=0,scancode=56,extendedKeyCode=0x12] on javax.swing.JEditorPane[,0,0,484x461,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.basic.BasicBorders$MarginBorder@6b76eb46,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=3,left=3,bottom=3,right=3],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],kit=javax.swing.JEditorPane$PlainEditorKit@358802e6,typeHandlers=]
Comment 4 Miloslav Metelka 2016-08-18 10:05:37 UTC
Yes, generally Ctrl+Alt+letter and Ctrl+Alt+Shift+letter combinations may insert accented letters on national keyboards so such shortcuts should not be used for actions.
Reassigning to refactoring for further evaluation.
Comment 5 Svata Dedic 2017-05-17 08:24:23 UTC
I have remapped (most of) refactoring actions to multikey shortcuts; CTRL-SHIFT-Y, <letter>. Introduce* actions remain on their Alt-Shift-<letter>.

ctrl-shift-R (as refactoring) is occupied by rectangular selection, which IMHO needs an accessible shortcut.
Comment 6 Quality Engineering 2017-05-24 19:38:39 UTC
Integrated into 'main-silver', will be available in build *201705241652* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/5e44a54fbc62
User: Svata Dedic <sdedic@netbeans.org>
Log: #257761: refactoring actions remapped to multikey shortcuts


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo