Ctrl/Cmd+O twee keer indrukken opent twee 'Presentatie openen'-dialogen #1927
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1927
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat er gebeurt
Met een presentatie open twee keer snel achter elkaar Ctrl+O (of Cmd+O) drukken. Er verschijnen twee openen-dialogen op elkaar. Na het kiezen van een bestand in de bovenste blijft de onderste staan en moet je die apart wegklikken.
Wat er hoort te gebeuren
Een tweede Ctrl/Cmd+O terwijl de openen-dialoog al open staat doet niets — of brengt de bestaande dialoog naar voren. Nooit twee.
Stappen om te herhalen
Vermoedelijke oorzaak
_openActive()inlib/widgets/app_shell.dartroept_openWithSearch()inlib/widgets/shell/shell_actions.dartaan zonder enige bewaking tegen heropening.showDialogstapelt gewoon een tweede route. Dezelfde actie hangt onder drie ingangen (sneltoets, menubalk, welkomstscherm), dus de bewaking hoort bij de actie zelf en niet bij één ingang.Waarschijnlijk raakt dit ook de andere app-brede sneltoetsen die een dialoog openen (opslaan-als, importeren) — die moeten meegenomen worden in de controle.
Opgepakt. Tak:
fix/single-open-dialog-guard.Verwachte reikwijdte: een herentree-bewaking op de app-brede dialoogacties in
lib/widgets/app_shell.dart/lib/widgets/shell/shell_actions.dart, plus een regressietest die twee keer Ctrl+O stuurt en telt hoeveel dialogen er staan. Ik loop daarbij de andere sneltoetsen na die een dialoog openen.PR: #1933 (tak
fix/single-open-dialog-guard, drie commits).Oorzaak:
showDialogduwt zijn route synchroon, maar de focusboom verwerkt die wissel pas in de volgende frame — de tweede aanslag komt dus nog bij de app-brede binding aan. Op macOS telt de native menubalk met dezelfde Cmd-sneltoets daarbij op.Opgelost aan de invoerkant: alle app-brede bindingen lopen langs
_onlyWhenShellIsOnTop, dus geen enkele sneltoets vuurt nog door een dialoog, de documentatielezer of het presentatiescherm heen. Dat dekt ook opslaan, sluiten en zoeken.Meegenomen: SHORTCUTS.md miste de app-brede Ctrl/Cmd+W, en het doccommentaar boven
_openWithSearchbeschreef de pakketexport (weesje van een eerdere splitsing).make checkgroen (7175 tests, dekkingsvloeren, goldens), secrets- en SAST-scan schoon. Regressietest eerst rood gezien. Wacht nu op de CI-runner, die sinds 04:51 UTC vastzit op een job van een andere repo.Gemerged in main als
af8715935(PR #1933). Ctrl/Cmd+O twee keer indrukken opent voortaan één dialoog.Wat er níet in zat: de bestandslijst van dat scherm is nog steeds niet met het toetsenbord te bedienen — dat is bestaand gedrag en staat apart als #1934.