processing / processing/processing4

keyPressed() does not always fire after starting sketch

Ouverte
#766 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Java
Étoiles
494
Forks
183
Merge moyen
4 h 39 min
PR mergées (30 j)
3

Description

Created by: sterretjeToo

When starting a sketch from the IDE or running an exported sketch, it does not always react on keyboard input; sometimes one has to click inside the drawn area. So it looks like a started sketch does not have the focus; clicking on the titlebar in the window does not solve the issue.

The below sketch (running in the IDE) produces the issue (as said, it sometimes works correctly, sometime not).

void setup()
{
  size(400, 200);
}

void draw()
{
}

void keyPressed()
{
  println("keyPressed()");
}

Expected behaviour

The expected behaviour is that at the moment that the sketch runs and a key is pressed, the message "keyPressed()" shows.

System information

Second gen Intel I3 with 8GB memory and integrated Intel Graphics (AsRock H61M VS-R2.0)
Windows 10 Home
Processing 4.3; the issue was also observed in Processing 4.2)

Workaround

https://discourse.processing.org/t/keypressed-only-works-sometimes/22340 (July 1920) contains a (possible) workaround by using the below line in setup()

  surface.setVisible(true);

For now, it seems to have solved the issue. I will provide feedback if I still encounter the issue with the above workaround.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Exécutez le sketch minimal fourni à la fois depuis l’IDE et dans un sketch exporté sous Windows, en vérifiant si keyPressed() se déclenche immédiatement sans cliquer dans la zone de dessin. Commencez par comparer le comportement au démarrage du sketch ainsi que le comportement du focus et de la visibilité de la fenêtre, y compris le workaround signalé surface.setVisible(true). Le travail est terminé lorsque la saisie au clavier fonctionne de manière fiable immédiatement après le lancement dans les deux cas.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
desktop
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.