diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index b7f9996e2..80961b453 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -658,6 +658,7 @@ public class PApplet implements PConstants { * @see PApplet#keyReleased() */ public boolean keyPressed; + int keyPressedCount; /** * The last KeyEvent object passed into a mouse function. @@ -2934,11 +2935,13 @@ public class PApplet implements PConstants { switch (event.getAction()) { case KeyEvent.PRESS: + keyPressedCount++; keyPressed = true; keyPressed(keyEvent); break; case KeyEvent.RELEASE: - keyPressed = false; + keyPressedCount--; + keyPressed = (keyPressedCount == 0); keyReleased(keyEvent); break; case KeyEvent.TYPE: diff --git a/core/todo.txt b/core/todo.txt index 10a5623eb..f492e4440 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -1,6 +1,8 @@ 0259 (3.3.2) X add (far) more efficient file loading for loadBytes(File) X add loadBytes(URL) variant that uses content length header for array size +X keyPressed is false if one key is released while multiple keys are pressed +X https://github.com/processing/processing/issues/4993 andres X Assigning Pixels Vertically Flipped in P2D