Tweede Cmd/Ctrl+S tijdens een lopende opslag verdwijnt stilletjes #1952
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#1952
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?
Het probleem
Tijdens een lopende opslag wordt een tweede Cmd/Ctrl+S genegeerd:
savegeeft meteenfalseterug, zonder snackbar, zonder dat het tabblad vuil blijft om die reden, en zonder dat de gebruiker ziet dat de tweede poging niet is meegenomen.De eerste opslag loopt nog. De tweede was vaak "ik weet niet of de eerste aankwam, ik druk nog eens". In de menubalk en via
unawaited(saveTabWithDestination(...))is er geen wachtaanduiding die die onzekerheid wegneemt. Wie daarna meteen sluit of crasht, kan de kloof tot de volgende autosave (25 s) mislopen.De lock zelf is terecht — twee schrijfbeurten door elkaar is erger. Het zwijgen is het probleem.
Hoe het nu werkt
lib/state/deck_provider.dart:Commentaar: "A dropped trigger is harmless — the deck is still dirty." Dat is waar zolang de eerste save nog niet klaar is. Is de eerste net klaar en was er getypt tijdens het schrijven, dan speelt een ander pad (
userEdited). De UI-laag inlib/widgets/app_shell.dartdoetunawaited(...)en reageert niet opfalse.De lock is getest in
save_hardening_test.dart; de UX bij dubbele sneltoets niet.Denkrichting (niet uitgewerkt)
_saving == true: geen tweede schrijfbeurt, wél een korte melding ("Bezig met opslaan…") of de tweede poging in een wachtrij van lengte 1 zetten die ná de eerste opnieuw opslaat als het tabblad nog vuil is.Geen formaatwijziging.
Raakvlakken
lib/state/deck_provider.dart(save,_saving)lib/widgets/app_shell.dart(_saveActive)test/save_hardening_test.dart