diff --git a/android-client/web/app.html b/android-client/web/app.html index 4aa0152..b9fd75d 100644 --- a/android-client/web/app.html +++ b/android-client/web/app.html @@ -899,6 +899,12 @@ addEventListener('scroll', function (ev) { document.addEventListener('focusin', function (ev) { var el = ev.target; if (!el.classList || !el.classList.contains('field-in')) return; + // UNE LISTE DEROULANTE NE LEVE PAS DE CLAVIER. Elle ouvre une liste native + // par-dessus la page, qui n'occupe rien et disparait au choix. Lui reserver + // 60 % de hauteur et la faire remonter en tete de panneau fait sauter + // l'ecran sans qu'aucun clavier ne le justifie - c'est le champ Dossier qui + // l'a montre. + if (el.tagName === 'SELECT') return; document.body.classList.add('typing'); // Differe d'un tour : la place reservee ci-dessus n'est pas encore prise en // compte, et il n'y aurait nulle part ou remonter. @@ -906,11 +912,12 @@ document.addEventListener('focusin', function (ev) { var row = el.closest && el.closest('.field, .in-wrap'); var box = el.closest && el.closest('.scroll'); if (!row || !box || !row.scrollIntoView) return; - // NE BOUGER QUE SI C'EST UTILE. Un champ deja dans le haut du panneau - - // celui des reglages, par exemple - est visible tel quel, et le faire - // sauter quand meme ne fait que deplacer sous l'oeil ce qui allait bien. + // NE BOUGER QUE SI C'EST UTILE, et le seuil doit dire ce que le clavier + // recouvre : un peu moins de la moitie basse. A 40 % on faisait remonter + // des champs qui restaient parfaitement visibles, donc on deplacait sous + // l'oeil ce qui allait bien. var top = row.getBoundingClientRect().top - box.getBoundingClientRect().top; - if (top > box.clientHeight * 0.4) row.scrollIntoView({ block: 'start' }); + if (top > box.clientHeight * 0.55) row.scrollIntoView({ block: 'start' }); }, 250); }); document.addEventListener('focusout', function () {