benfry / processing4

Processing 4.x releases for Java 17
https://processing.org
Other
1.31k stars 237 forks source link

`keyPressed` is `true` with no keys pressed after specific sequence of `SHIFT` and any letter key #779

Open keppy442b opened 10 months ago

keppy442b commented 10 months ago
## Description

keyPressed is true with no keys actively pressed after doing a specific sequence of key presses with SHIFT and a letter key. It also occurs with CTRL and a letter key. This is more easily reproduced with P2D, but it does occur with the default renderer as well.

Expected Behavior

keyPressed should be false when no keys are actively pressed.

Current Behavior

Steps to Reproduce

  1. Press and hold a letter key
  2. While still holding letter key, press and hold SHIFT
  3. While still holding SHIFT, release the letter key
  4. Release SHIFT

Pressing CTRL instead of SHIFT will also produce the behavior. It appears the only way to set keyPressed back to false is to press/release the specific letter key again. So if you did SHIFT+a, press and release a to set keyPressed back to the expected behavior. You can try to reproduce the behavior with this sketch:

color black = color(36,39,45);
color green = color(141,187,110);
void setup(){
  size(1600,900,P2D); 
}

void draw(){
  if (keyPressed){
    background(green);
  } else{
    background(black);
  }
}

Your Environment

T-vaccari commented 5 months ago

Hello, I would like to contribute to this issue, is it still open?