diff --git a/app/src/processing/app/syntax/PdeInputHandler.java b/app/src/processing/app/syntax/PdeInputHandler.java index d5950e320..cb5c2b356 100755 --- a/app/src/processing/app/syntax/PdeInputHandler.java +++ b/app/src/processing/app/syntax/PdeInputHandler.java @@ -188,6 +188,22 @@ public class PdeInputHandler extends DefaultInputHandler { } + protected boolean isMnemonic(KeyEvent event) { + // Don't do this on OS X, because alt (the option key) is used for + // non-ASCII chars, and there are no menu mnemonics to speak of + if (!Base.isMacOS()) { + if ((event.getModifiers() & InputEvent.ALT_MASK) != 0 && + event.getKeyChar() != KeyEvent.VK_UNDEFINED) { + // This is probably a menu mnemonic, don't pass it through. + // If it's an alt-NNNN sequence, those only work on the keypad + // and pass through UNDEFINED as the keyChar. + return true; + } + } + return false; + } + + public void keyPressed(KeyEvent event) { // don't pass the ctrl-, through to the editor // https://github.com/processing/processing/issues/3074 @@ -195,6 +211,11 @@ public class PdeInputHandler extends DefaultInputHandler { event.getKeyChar() == ',') { return; } + // don't pass menu mnemonics (alt-f for file, etc) to the editor + if (isMnemonic(event)) { + return; + } + if (!handlePressed(event)) { super.keyPressed(event); } @@ -202,6 +223,10 @@ public class PdeInputHandler extends DefaultInputHandler { public void keyTyped(KeyEvent event) { + if (isMnemonic(event)) { + return; + } + if (!handleTyped(event)) { super.keyTyped(event); } diff --git a/java/src/processing/mode/java/JavaInputHandler.java b/java/src/processing/mode/java/JavaInputHandler.java index 7d6c6df2f..dd0f7a96d 100755 --- a/java/src/processing/mode/java/JavaInputHandler.java +++ b/java/src/processing/mode/java/JavaInputHandler.java @@ -74,7 +74,6 @@ public class JavaInputHandler extends PdeInputHandler { if ((code == KeyEvent.VK_BACK_SPACE) || (code == KeyEvent.VK_TAB) || (code == KeyEvent.VK_ENTER) || ((c >= 32) && (c < 128))) { - System.out.println(event); sketch.setModified(true); }