MCPcopy Index your code
hub / github.com/processing/processing / handleKeyEvent

Method handleKeyEvent

core/src/processing/core/PApplet.java:2989–3046  ·  view source on GitHub ↗
(KeyEvent event)

Source from the content-addressed store, hash-verified

2987
2988
2989 protected void handleKeyEvent(KeyEvent event) {
2990
2991 // Get rid of auto-repeating keys if desired and supported
2992 if (!keyRepeatEnabled && event.isAutoRepeat()) return;
2993
2994 keyEvent = event;
2995 key = event.getKey();
2996 keyCode = event.getKeyCode();
2997
2998 switch (event.getAction()) {
2999 case KeyEvent.PRESS:
3000 Long hash = ((long) keyCode << Character.SIZE) | key;
3001 if (!pressedKeys.contains(hash)) pressedKeys.add(hash);
3002 keyPressed = true;
3003 keyPressed(keyEvent);
3004 break;
3005 case KeyEvent.RELEASE:
3006 pressedKeys.remove(((long) keyCode << Character.SIZE) | key);
3007 keyPressed = !pressedKeys.isEmpty();
3008 keyReleased(keyEvent);
3009 break;
3010 case KeyEvent.TYPE:
3011 keyTyped(keyEvent);
3012 break;
3013 }
3014
3015 /*
3016 if (keyEventMethods != null) {
3017 keyEventMethods.handle(new Object[] { event.getNative() });
3018 }
3019 */
3020
3021 handleMethods("keyEvent", new Object[] { event });
3022
3023 // if someone else wants to intercept the key, they should
3024 // set key to zero (or something besides the ESC).
3025 if (event.getAction() == KeyEvent.PRESS) {
3026 //if (key == java.awt.event.KeyEvent.VK_ESCAPE) {
3027 if (key == ESC) {
3028 exit();
3029 }
3030 // When running tethered to the Processing application, respond to
3031 // Ctrl-W (or Cmd-W) events by closing the sketch. Not enabled when
3032 // running independently, because this sketch may be one component
3033 // embedded inside an application that has its own close behavior.
3034 if (external &&
3035 event.getKeyCode() == 'W' &&
3036 ((event.isMetaDown() && platform == MACOSX) ||
3037 (event.isControlDown() && platform != MACOSX))) {
3038 // Can't use this native stuff b/c the native event might be NEWT
3039// if (external && event.getNative() instanceof java.awt.event.KeyEvent &&
3040// ((java.awt.event.KeyEvent) event.getNative()).getModifiers() ==
3041// Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() &&
3042// event.getKeyCode() == 'W') {
3043 exit();
3044 }
3045 }
3046 }

Callers 1

dequeueEventsMethod · 0.95

Calls 14

keyPressedMethod · 0.95
keyReleasedMethod · 0.95
keyTypedMethod · 0.95
handleMethodsMethod · 0.95
exitMethod · 0.95
isAutoRepeatMethod · 0.80
getKeyMethod · 0.80
isMetaDownMethod · 0.80
isControlDownMethod · 0.80
getKeyCodeMethod · 0.45
getActionMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected