Browse Source
* test(TextBox): reproduce stale undo history after binding update TwoWay-bound TextBox instances retain prior user-edit snapshots when the binding source replaces the text, allowing undo to write values from a previous model context back into the current source. Cover the external replacement and the normal TwoWay source echo separately so a fix cannot clear valid user undo history after each edit. * fix(TextBox): reset undo history for external text updates Binding and direct property updates currently enter the same undo timeline as user edits, so a reused TwoWay-bound TextBox can write text from a previous model back into the current source. Track TextBox-initiated mutations through synchronous source notifications, preserve those edits in the undo timeline, and establish a fresh baseline for all external updates. MaskedTextBox routes its own edits through the same boundary so its existing undo behavior remains intact. * fix(TextBox): distinguish edits from internal synchronization in undo history Replace the boolean text-mutation flag with a three-state TextMutationKind (ExternalReplacement / Edit / InternalSynchronization) so MaskedTextBox's prompt-character reformatting on focus/blur and mask-provider refreshes no longer create undo entries, while actual keyboard edits remain undoable.pull/21857/head
committed by
GitHub
4 changed files with 273 additions and 25 deletions
Loading…
Reference in new issue