MCPcopy Index your code
hub / github.com/benfry/processing4 / handleKeyEvent

Method handleKeyEvent

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

Source from the content-addressed store, hash-verified

2620
2621
2622 protected void handleKeyEvent(KeyEvent event) {
2623
2624 // Get rid of auto-repeating keys if desired and supported
2625 if (!keyRepeatEnabled && event.isAutoRepeat()) return;
2626
2627 keyEvent = event;
2628 key = event.getKey();
2629 keyCode = event.getKeyCode();
2630
2631 switch (event.getAction()) {
2632 case KeyEvent.PRESS -> {
2633 Long hash = ((long) keyCode << Character.SIZE) | key;
2634 if (!pressedKeys.contains(hash)) pressedKeys.add(hash);
2635 keyPressed = true;
2636 keyPressed(keyEvent);
2637 }
2638 case KeyEvent.RELEASE -> {
2639 pressedKeys.remove(((long) keyCode << Character.SIZE) | key);
2640 keyPressed = !pressedKeys.isEmpty();
2641 keyReleased(keyEvent);
2642 }
2643 case KeyEvent.TYPE -> keyTyped(keyEvent);
2644 }
2645
2646 /*
2647 if (keyEventMethods != null) {
2648 keyEventMethods.handle(new Object[] { event.getNative() });
2649 }
2650 */
2651
2652 handleMethods("keyEvent", event);
2653
2654 // if someone else wants to intercept the key, they should
2655 // set key to zero (or something besides the ESC).
2656 if (event.getAction() == KeyEvent.PRESS) {
2657 //if (key == java.awt.event.KeyEvent.VK_ESCAPE) {
2658 if (key == ESC) {
2659 exit();
2660 }
2661 // When running tethered to the Processing application, respond to
2662 // Ctrl-W (or Cmd-W) events by closing the sketch. Not enabled when
2663 // running independently, because this sketch may be one component
2664 // embedded inside an application that has its own close behavior.
2665 if (external &&
2666 event.getKeyCode() == 'W' &&
2667 ((event.isMetaDown() && platform == MACOS) ||
2668 (event.isControlDown() && platform != MACOS))) {
2669 // Can't use this native stuff b/c the native event might be NEWT
2670// if (external && event.getNative() instanceof java.awt.event.KeyEvent &&
2671// ((java.awt.event.KeyEvent) event.getNative()).getModifiers() ==
2672// Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() &&
2673// event.getKeyCode() == 'W') {
2674 exit();
2675 }
2676 }
2677 }
2678
2679

Callers 1

dequeueEventsMethod · 0.95

Calls 15

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

Tested by

no test coverage detected