RFR: 8371067: RichTextArea: requestLayout by inline node doesn't reach VFlow

Andy Goryachev angorya at openjdk.org
Thu Nov 20 16:16:05 UTC 2025


On Thu, 20 Nov 2025 13:08:37 GMT, Jurgen <duke at openjdk.org> wrote:

>> Requesting `VFlow` re-layout when signaled by a `Node` embedded in `TextCell`.
>> 
>> 
>> ### NOTES
>> 
>> - this PR depends on https://github.com/openjdk/jfx/pull/1974
>> - the fix can be verified visually using the latest Monkey Tester
>> 
>> <img width="1232" height="741" alt="Screenshot 2025-11-17 at 13 43 12" src="https://github.com/user-attachments/assets/58b2ef77-094c-45bd-8a04-3caaa4672df1" />
>
> modules/jfx.incubator.richtext/src/main/java/com/sun/jfx/incubator/scene/control/richtext/TextCell.java line 105:
> 
>> 103:     public void add(Node node) {
>> 104:         flow().getChildren().add(node);
>> 105:         embedsNode = true;
> 
> Is the intention that if the `TextCell` has no children (neither Text nor embedded nodes) that _getAncestorOfClass_ is bypassed ?
> Or is this to indicate that _getAncestorOfClass_ should only be invoked if there are any embedded nodes (non Text ones) present ?
> If the latter then note that `add(Node)` is called for both the adding of Text and embedded nodes and maybe you intended to overload the add method with add(Text) ?

All this is by design.  VFlow is the component that lays out the text cells.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1975#discussion_r2546691131


More information about the openjfx-dev mailing list