I added logging of key events. Correct log of pressing eg.Alt-f t is:
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_PRESSED,keyCode=18,keyText=Alt,keyChar=Undefined
keyChar,modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_LEFT source:org.openide.text.QuietEditorPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_PRESSED,keyCode=70,keyText=F,keyChar='f',modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_STANDARD
source:org.openide.text.QuietEditorPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_TYPED,keyCode=0,keyText=Unknown keyCode:
0x0,keyChar='f',modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_UNKNOWN source:org.openide.text.QuietEditorPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_RELEASED,keyCode=18,keyText=Alt,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT source:javax.swing.JRootPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_RELEASED,keyCode=70,keyText=F,keyChar='f',keyLocation=KEY_LOCATION_STANDARD source:javax.swing.JRootPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_PRESSED,keyCode=84,keyText=T,keyChar='t',keyLocation=KEY_LOCATION_STANDARD source:javax.swing.JRootPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='t',keyLocation=KEY_LOCATION_UNKNOWN source:javax.swing.JRootPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_RELEASED,keyCode=84,keyText=T,keyChar='t',keyLocation=KEY_LOCATION_STANDARD source:org.openide.text.QuietEditorPane
note that KEY_TYPED goes to JRootPane.
Incorrect case for Alt-i d is:
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_PRESSED,keyCode=18,keyText=Alt,keyChar=Undefined
keyChar,modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_LEFT source:org.openide.text.QuietEditorPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_PRESSED,keyCode=73,keyText=I,keyChar='i',modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_STANDARD
source:org.openide.text.QuietEditorPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_TYPED,keyCode=0,keyText=Unknown keyCode:
0x0,keyChar='i',modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_UNKNOWN source:org.openide.text.QuietEditorPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_RELEASED,keyCode=73,keyText=I,keyChar='i',modifiers=Alt,extModifiers=Alt,keyLocation=KEY_LOCATION_STANDARD
source:javax.swing.JRootPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_RELEASED,keyCode=18,keyText=Alt,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT source:javax.swing.JRootPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_PRESSED,keyCode=68,keyText=D,keyChar='d',keyLocation=KEY_LOCATION_STANDARD source:javax.swing.JRootPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar='d',keyLocation=KEY_LOCATION_UNKNOWN
source:org.openide.text.QuietEditorPane
FINE [org.netbeans.core.windows.ShortcutAndMenuKeyEventProcessor]: dispatchKeyEvent ev:
KEY_RELEASED,keyCode=68,keyText=D,keyChar='d',keyLocation=KEY_LOCATION_STANDARD source:org.openide.text.QuietEditorPane
Note that KEY_TYPED goes to QuietEditorPane ie. our editor component.
This happens randomly, rarely. We are unable to reproduce it nevertheless it happens and it is reported more than one developer. We did not find any pattern like dependence on mnemonic key. From log it is not accidental double key press.
Original report is at http://www.netbeans.org/issues/show_bug.cgi?id=88525.