mirror of
https://framagit.org/JonathanMM/sutom.git
synced 2024-05-10 17:56:48 +02:00
Suppression de doublons d'événements avec le clavier physique
This commit is contained in:
parent
d125212d19
commit
5b1e2a5ea4
44
ts/input.ts
44
ts/input.ts
|
@ -25,6 +25,8 @@ export default class Input {
|
||||||
this._estBloque = false;
|
this._estBloque = false;
|
||||||
this._resultats = new Array<LettreResultat>();
|
this._resultats = new Array<LettreResultat>();
|
||||||
|
|
||||||
|
this.ajouterEvenementClavierPhysique();
|
||||||
|
|
||||||
this.dessinerClavier(configuration.disposition ?? Configuration.Default.disposition);
|
this.dessinerClavier(configuration.disposition ?? Configuration.Default.disposition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +66,7 @@ export default class Input {
|
||||||
|
|
||||||
this._inputArea.appendChild(ligneDiv);
|
this._inputArea.appendChild(ligneDiv);
|
||||||
}
|
}
|
||||||
this.ajouterEvenements();
|
this.ajouterEvenementClavierVirtuel();
|
||||||
this.updateClavier(this._resultats);
|
this.updateClavier(this._resultats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +99,27 @@ export default class Input {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ajouterEvenements(): void {
|
private ajouterEvenementClavierVirtuel(): void {
|
||||||
|
this._inputArea.querySelectorAll(".input-lettre").forEach((lettreDiv) =>
|
||||||
|
lettreDiv.addEventListener("click", (event) => {
|
||||||
|
event.stopPropagation();
|
||||||
|
let div = event.currentTarget;
|
||||||
|
if (!div) return;
|
||||||
|
let lettre = (div as HTMLElement).dataset["lettre"];
|
||||||
|
if (lettre === undefined) {
|
||||||
|
return;
|
||||||
|
} else if (lettre === "_effacer") {
|
||||||
|
this.effacerLettre();
|
||||||
|
} else if (lettre === "_entree") {
|
||||||
|
this.validerMot();
|
||||||
|
} else {
|
||||||
|
this.saisirLettre(lettre);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ajouterEvenementClavierPhysique(): void {
|
||||||
document.addEventListener(
|
document.addEventListener(
|
||||||
"keypress",
|
"keypress",
|
||||||
((event: KeyboardEvent) => {
|
((event: KeyboardEvent) => {
|
||||||
|
@ -124,24 +146,6 @@ export default class Input {
|
||||||
}
|
}
|
||||||
}).bind(this)
|
}).bind(this)
|
||||||
);
|
);
|
||||||
|
|
||||||
this._inputArea.querySelectorAll(".input-lettre").forEach((lettreDiv) =>
|
|
||||||
lettreDiv.addEventListener("click", (event) => {
|
|
||||||
event.stopPropagation();
|
|
||||||
let div = event.currentTarget;
|
|
||||||
if (!div) return;
|
|
||||||
let lettre = (div as HTMLElement).dataset["lettre"];
|
|
||||||
if (lettre === undefined) {
|
|
||||||
return;
|
|
||||||
} else if (lettre === "_effacer") {
|
|
||||||
this.effacerLettre();
|
|
||||||
} else if (lettre === "_entree") {
|
|
||||||
this.validerMot();
|
|
||||||
} else {
|
|
||||||
this.saisirLettre(lettre);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private effacerLettre(): void {
|
private effacerLettre(): void {
|
||||||
|
|
Loading…
Reference in a new issue