Ongedaan maken op een document zet de tab altijd vuil en de cursor aan het eind #1672

Closed
opened 2026-08-21 12:02:08 +00:00 by brenno · 0 comments
Owner

Wat er misgaat

Drie samenhangende fouten in dezelfde undo-lus:

  1. DocumentNotifier.undo/redo zetten altijd isDirty: true, ook als de bron weer gelijk is aan savedSource. De oranje stip en sluit-dialoog blijven.
  2. visualEdited gaat niet mee terug. Opslaan na undo vanuit Visueel volgt nog _patchVisualSave.
  3. De editor zet bij een externe bodywijziging de selectie op body.length — de cursor springt naar het einde.

Waar het zit

  • lib/state/document_provider.dartundo/redo.
  • lib/widgets/document_editor_screen.dartref.listen op de body.
  • lib/widgets/shell/document_save_actions.dartvisualEdited.

Stappen

Opgeslagen document, één teken, ongedaan maken. Tab blijft vuil; cursor staat achteraan.

Wat het met het formaat doet

Niets tot je Opslaan klikt (dan een overbodige schrijfactie / visuele patch).

Regressie

isDirty afleiden uit vergelijking met savedSource; visualEdited op de stapel; selectie behouden of naar de wijziging. #1566 dekte moduswissel, niet undo.

## Wat er misgaat Drie samenhangende fouten in dezelfde undo-lus: 1. `DocumentNotifier.undo`/`redo` zetten altijd `isDirty: true`, ook als de bron weer gelijk is aan `savedSource`. De oranje stip en sluit-dialoog blijven. 2. `visualEdited` gaat niet mee terug. Opslaan na undo vanuit Visueel volgt nog `_patchVisualSave`. 3. De editor zet bij een externe bodywijziging de selectie op `body.length` — de cursor springt naar het einde. ## Waar het zit - `lib/state/document_provider.dart` — `undo`/`redo`. - `lib/widgets/document_editor_screen.dart` — `ref.listen` op de body. - `lib/widgets/shell/document_save_actions.dart` — `visualEdited`. ## Stappen Opgeslagen document, één teken, ongedaan maken. Tab blijft vuil; cursor staat achteraan. ## Wat het met het formaat doet Niets tot je Opslaan klikt (dan een overbodige schrijfactie / visuele patch). ## Regressie `isDirty` afleiden uit vergelijking met `savedSource`; `visualEdited` op de stapel; selectie behouden of naar de wijziging. #1566 dekte moduswissel, niet undo.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1672
No description provided.