fix(editor): whitelist the bar controls, not the whole bars

content-header and pagination were exempt from click-away in full, so their large empty areas were dead: clicking beside the title or next to the page buttons left the editor open. Only the actual controls are exempt now.
This commit is contained in:
r-zakarya
2026-08-01 23:48:54 +01:00
parent dc7b18736e
commit 69b0e84f63
2 changed files with 12 additions and 5 deletions
+6
View File
@@ -198,6 +198,12 @@ plus bas.
- **`inert` ne suffit pas seul** : il retire les contrôles du focus, mais **pas** le défilement. `Espace`, `Page haut/bas`, `Début/Fin` et les flèches font défiler le document **sans aucun élément focalisé** — la page bougeait encore sous l'overlay. Ces touches sont donc avalées en phase de capture tant que l'opération tourne.
- **Vérifier aussi le défilement** : pendant l'overlay, `Espace` et `Page bas` ne doivent rien bouger ; après, le défilement clavier doit refonctionner.
### B19 · cliquer dans le vide ferme l'éditeur, y compris près des barres
- **ACTION** : `A` ouverte → cliquer dans l'**espace vide** à droite du titre « All items », puis dans l'espace vide de la barre de pagination.
- **ATTENDU** : l'éditeur se ferme (avec la modale de discard s'il est *dirty*), comme n'importe quel clic hors du panneau.
- **ATTENDU (non-régression)** : les **commandes** de ces barres ne ferment toujours pas l'éditeur — boutons de page, sélecteur `25 / page`, tri, barre de sélection, *Empty trash*.
- **Historique** : `.content-header` et `.pagination` étaient en liste blanche **en entier**, pour éviter que la barre de sélection et *Empty trash* ne ferment l'éditeur. Effet de bord : leurs grandes zones vides devenaient inertes, et un clic à côté du titre ne faisait plus rien. La liste blanche ne retient plus que les contrôles.
### B14 · dialogues natifs ouverts par un clic programmatique ✅
- **ACTION** : `A` ouverte + **dirty** → (a) Settings → *Import vault* ; (b) télécharger une pièce jointe (fallback web) ; (c) *Upload icon* ; (d) joindre un fichier.
- **ATTENDU** : **seul** le dialogue natif s'ouvre. Pas de « Discard unsaved changes? » par-dessus, l'éditeur reste ouvert et modifié.
+6 -5
View File
@@ -7558,12 +7558,13 @@ async function init() {
// the editor. Same for the table column picker dropdown.
if (e.target.closest('.topbar')) return;
if (e.target.closest('.sidebar')) return;
if (e.target.closest('.pagination')) return;
// Selection toolbar + the view's title row (which carries buttons
// like Empty trash) are chrome as well — their actions decide for
// themselves what happens to the editor.
// Only the CONTROLS of the title row and the pager, not the whole bars:
// whitelisting them wholesale made their (large) empty areas dead to
// click-away, so clicking beside the title or next to the page buttons
// left the editor open with no way to tell why.
if (e.target.closest('.pagination button, .pagination select')) return;
if (e.target.closest('.batch-bar')) return;
if (e.target.closest('.content-header')) return;
if (e.target.closest('#emptyTrashBtn')) return;
// A toast or the busy spinner can land under the cursor mid-operation;
// clicking one must not count as "clicked away from the editor".
if (e.target.closest('.toast')) return;