From e6ac72b2cc78b7b1c45723964be5246349091b38 Mon Sep 17 00:00:00 2001 From: rishab Date: Fri, 14 Mar 2025 00:20:33 +0530 Subject: [PATCH] fixes 779 --- core/src/processing/core/PApplet.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index d96784a3f..e88b07f16 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -2635,8 +2635,17 @@ public class PApplet implements PConstants { keyPressed = true; keyPressed(keyEvent); } - case KeyEvent.RELEASE -> { - pressedKeys.remove(((long) keyCode << Character.SIZE) | key); + case KeyEvent.RELEASE -> { + List hashesToRemove = new ArrayList<>(); + for (Long hash : pressedKeys) { + int storedKeyCode = (int)(hash >> Character.SIZE); + if (storedKeyCode == keyCode) { + hashesToRemove.add(hash); + } + } + + pressedKeys.removeAll(hashesToRemove); + keyPressed = !pressedKeys.isEmpty(); keyReleased(keyEvent); }