fix(android): le clavier se replie une fois l'appui passe
Retenir le focus au mousedown fait atteindre la cible du premier coup, mais laissait le clavier ouvert : apres "Open vault" il restait dresse par-dessus la liste. Les deux moities vont ensemble - on retient le focus le temps de l'appui, on le lache des que l'action est partie. Sauf si le bouton agit sur le champ lui-meme : un oeil qui devoile, une fleche qui deroule. Ceux-la vivent dans la meme rangee que le champ, et replier le clavier apres eux obligerait a le rouvrir pour continuer. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -790,6 +790,26 @@ document.addEventListener('mousedown', function (ev) {
|
|||||||
if (a && (a.tagName === 'INPUT' || a.tagName === 'TEXTAREA')) ev.preventDefault();
|
if (a && (a.tagName === 'INPUT' || a.tagName === 'TEXTAREA')) ev.preventDefault();
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
|
// ET ON LE REND UNE FOIS LE CLIC PASSE.
|
||||||
|
//
|
||||||
|
// Garder le focus au mousedown fait atteindre la cible du premier coup, mais
|
||||||
|
// laisse le clavier ouvert : apres "Open vault" il restait dresse par-dessus la
|
||||||
|
// liste. Les deux moities vont ensemble - on retient le focus le temps de
|
||||||
|
// l'appui, on le lache des que l'action est partie.
|
||||||
|
//
|
||||||
|
// SAUF SI LE BOUTON AGIT SUR LE CHAMP LUI-MEME : un oeil qui devoile, une
|
||||||
|
// fleche qui deroule. Ceux-la vivent dans la meme rangee que le champ, et
|
||||||
|
// replier le clavier apres eux obligerait a le rouvrir pour continuer a taper.
|
||||||
|
document.addEventListener('click', function (ev) {
|
||||||
|
var b = ev.target.closest('button');
|
||||||
|
if (!b) return;
|
||||||
|
var a = document.activeElement;
|
||||||
|
if (!a || (a.tagName !== 'INPUT' && a.tagName !== 'TEXTAREA')) return;
|
||||||
|
var row = a.closest('.in-wrap, .field');
|
||||||
|
if (row && row.contains(b)) return;
|
||||||
|
a.blur();
|
||||||
|
});
|
||||||
|
|
||||||
function esc(s) {
|
function esc(s) {
|
||||||
return String(s == null ? '' : s).replace(/[&<>"]/g, function (c) {
|
return String(s == null ? '' : s).replace(/[&<>"]/g, function (c) {
|
||||||
return { '&': '&', '<': '<', '>': '>', '"': '"' }[c];
|
return { '&': '&', '<': '<', '>': '>', '"': '"' }[c];
|
||||||
|
|||||||
Reference in New Issue
Block a user