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];