SHORT SUMMARY:
DVORAK KEYBOARD MAPPING NOT HONORED WHEN CTRL KEY PRESSED
DESCRIPTION:
EB> Environment
EB> ===========
EB>
EB> Mac OS X 10.7.5
EB> Java 1.6.0_45
EB> NetBeans 7.3.1
EB>
EB> Configuration
EB> =============
EB> In System preferences, set keyboard layout to DVORAK and remap the
EB> caps lock key to be the ctrl key.
EB> In NetBeans preferences, set the keyboard mapping to emacs.
EB> Steps to reproduce
EB> ==================
EB> 1. In the text editor, put the text on a line and press Ctrl-e (e in
EB> the DVORAK layout is where d is in QWERTY) to go to the end of the
EB> line.
EB> Instead of going to the end of the line, Netbeans deletes a character.
EB> 2. In the text editor, put the text on a line and press Ctrl-. This
EB> causes the cursor to go to the end of the line, apparently because
EB> . in the DVORAK layout is where e is in QWERTY.
EB>
EB> Observation
EB> ===========
EB> It seems the keymap reverts to QWERTY when the Ctrl key is pressed.
EB> If I bring up the keyboard viewer, I do see that Ctrl-e is shown to
EB> be pressed when I press Ctrl-e.
Svata Dedic wrote:
SD> This seems as a defect in JDK/MacOS X, specifically the method
SD> KeyEvent.getExtendedKeyCode() fails to produce the correct key code
SD> (returns VK_UNDEFINED).
SD> The KeyEvent that arrives to the NetBeans for pressing "E" key has
SD> the following properties on both Linux (working) and MacOS X (not
SD> working):
SD> * keyText='E'
SD> * keyChar='.'
SD> * keyCode=69
SD> extendedKeyCode returns 46 on Linux, 0 on MacOS X.
SD> Should start to work OK once fixed on JDK/JRE side.