diff --git a/android-client/web/app.html b/android-client/web/app.html index 42a09c4..3c2d50a 100644 --- a/android-client/web/app.html +++ b/android-client/web/app.html @@ -764,6 +764,25 @@ function showLog(on) { } document.getElementById('btnCfg').addEventListener('click', openSettings); +// LE PREMIER APPUI NE DOIT PAS ETRE MANGE PAR LE CLAVIER. +// +// Un bouton touche pendant qu'un champ a le focus recevait d'abord le blur : +// le clavier se repliait, la reserve de body.typing disparaissait, la page +// remontait - et le bouton n'etait plus sous le doigt quand le clic partait. Il +// fallait donc appuyer deux fois, la premiere ne servant qu'a fermer le +// clavier. C'est ce qui se voyait sur "Set this code". +// +// Empecher le defaut du mousedown empeche le TRANSFERT DE FOCUS, pas le clic : +// le champ garde le curseur, rien ne bouge, et l'appui atteint sa cible du +// premier coup. Pose une fois pour toute la page - le piege n'a aucune raison +// d'etre propre aux reglages. +document.addEventListener('mousedown', function (ev) { + var b = ev.target.closest('button'); + if (!b) return; + var a = document.activeElement; + if (a && (a.tagName === 'INPUT' || a.tagName === 'TEXTAREA')) ev.preventDefault(); +}, true); + function esc(s) { return String(s == null ? '' : s).replace(/[&<>"]/g, function (c) { return { '&': '&', '<': '<', '>': '>', '"': '"' }[c];