From 5b1e2a5ea44fdc48e17345d96cab7314ec176182 Mon Sep 17 00:00:00 2001 From: JonathanMM Date: Sun, 30 Jan 2022 17:18:31 +0100 Subject: [PATCH] =?UTF-8?q?Suppression=20de=20doublons=20d'=C3=A9v=C3=A9ne?= =?UTF-8?q?ments=20avec=20le=20clavier=20physique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ts/input.ts | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/ts/input.ts b/ts/input.ts index c636bf4..d331f7e 100644 --- a/ts/input.ts +++ b/ts/input.ts @@ -25,6 +25,8 @@ export default class Input { this._estBloque = false; this._resultats = new Array(); + this.ajouterEvenementClavierPhysique(); + this.dessinerClavier(configuration.disposition ?? Configuration.Default.disposition); } @@ -64,7 +66,7 @@ export default class Input { this._inputArea.appendChild(ligneDiv); } - this.ajouterEvenements(); + this.ajouterEvenementClavierVirtuel(); 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( "keypress", ((event: KeyboardEvent) => { @@ -124,24 +146,6 @@ export default class Input { } }).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 {