diff --git a/android-client/web/app.html b/android-client/web/app.html
index 6e1a041..4e7d951 100644
--- a/android-client/web/app.html
+++ b/android-client/web/app.html
@@ -695,11 +695,38 @@ if (window.visualViewport) {
var measureKeyboard = function () {
var hidden = Math.max(0, Math.round(window.innerHeight - vv.height));
document.documentElement.style.setProperty('--kb', hidden + 'px');
+ reportBox('keyboard');
};
vv.addEventListener('resize', measureKeyboard);
measureKeyboard();
+} else {
+ window._noVisualViewport = true;
}
+// DIAGNOSTIC, temporaire. Deux corrections posees a l'aveugle n'ont rien
+// change ; celle-ci dit ce que la page mesure vraiment, dans le journal plutot
+// qu'en message fugace, pour qu'on puisse la lire apres coup.
+function reportBox(why) {
+ // PM n'existe pas encore au chargement : cette fonction tourne aussi avant
+ // lui, et on ne va pas casser la page pour une trace.
+ // Les trois vues sont TOUTES dans le document - c'est un rail, rien n'est
+ // masque - donc la vue active se designe par son nom, pas par sa visibilite.
+ if (!window.PM || !PM.log) return;
+ var box = document.getElementById(view);
+ box = box && box.querySelector('.scroll');
+ var vh = window.visualViewport ? Math.round(window.visualViewport.height) : -1;
+ var sc = document.body.className || '(none)';
+ if (!box) { PM.log(why + ': no scroll box, body=' + sc); return; }
+ // clientHeight = ce que la boite montre, scrollHeight = ce qu'elle contient.
+ // Egaux, il n'y a rien a faire defiler, et c'est TOUT le probleme.
+ PM.log(why + ': inner ' + window.innerHeight + ' visual ' + vh
+ + ' | box client ' + box.clientHeight + ' scroll ' + box.scrollHeight
+ + ' | body=' + sc);
+}
+document.addEventListener('focusin', function () {
+ setTimeout(function () { reportBox('focus'); }, 400);
+});
+
// AUCUN CHAMP D'UNE VUE AU REPOS NE GARDE LE FOCUS.
//
// Meme origine que le glissement ci-dessus. La touche de validation du clavier