RFR: 8366201: RichTextArea: remove allowUndo parameter [v13]

Andy Goryachev angorya at openjdk.org
Fri Nov 7 16:47:47 UTC 2025


> Original user feedback (see https://mail.openjdk.org/pipermail/openjfx-discuss/2025-August/000267.html ) called for adding an `allowUndo` parameter to `applyStyle()` and `setStyle()` methods similarly to `replaceText()`.
> 
> Upon further analysis, the `allowUndo` parameter was a mistake: allowing the application code to disable creating undo/redo entries messes up the internal undo/redo stack.
> There is an internal need (`UndoableChange`), but it should not be exposed via public API.
> 
> This PR also adds `isUndoRedoEnabled()` and `setUndoRedoEnabled()` to the `StyledTextModel`, as well as its forwarding aliases to `RichTextArea` to allow for the application to disable undo/redo temporarily, for example, when building a document from multiple segments.
> 
> WARNING this is an incompatible change, permitted because of the incubator.
> 
> There remains a possible issue with currently unlimited size of the undo/redo stack - perhaps we should limit its depth to maybe 100-200 entries, see https://bugs.openjdk.org/browse/JDK-8370447 .

Andy Goryachev has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 22 commits:

 - Merge branch 'master' into 8366201.allow.undo
 - review comments
 - Merge branch 'master' into 8366201.allow.undo
 - javadoc
 - suggestion
   
   Co-authored-by: Kevin Rushforth <kevin.rushforth at oracle.com>
 - set text
 - Merge branch 'master' into 8366201.allow.undo
 - undo/redo javadoc in model only
 - javadoc
 - the
 - ... and 12 more: https://git.openjdk.org/jfx/compare/bb660211...4f3cf21f

-------------

Changes: https://git.openjdk.org/jfx/pull/1941/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1941&range=12
  Stats: 314 lines in 17 files changed: 238 ins; 7 del; 69 mod
  Patch: https://git.openjdk.org/jfx/pull/1941.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1941/head:pull/1941

PR: https://git.openjdk.org/jfx/pull/1941


More information about the openjfx-dev mailing list