The current behavior of table internal frames in Gecko is to suppress whitespace by not creating frames for those text nodes. This is fine and dandy, but blows up when someone then mutates the text in the text node. We do nothing when that happens, whereas we should create a text frame, wrapper frames for it, etc.

This gets particularly complicated for cases like:

  <div>
    <span style="display: table-cell">A</span>
    <span style="display: table-cell">B</span>
  </div>

because in that case even looking at the frame for the parent content doesn't get you far (it's just a block).

The options I see are:

1)  Allow whitespace-only Text frames as kids of rows, rowgroups,
    colgroups, tables.  On mutation of the text in a textframe with
    such a kid, reframe the containing block.
2)  Don't create such frames, but mark the content nodes involved
    somehow so that mutations to them reframe the containing block.

Any other obvious options?  Thoughts on the two possibilities above?

-Boris
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to