On Wed, Jun 5, 2013 at 1:48 PM, Patrick Walton <pwal...@mozilla.com> wrote:
> We're trying to figure out what to do when an inline RenderBox of an > inline flow becomes non-inline. This is a vexing issue, as it violates the > invariant that a flow's descendants and the flow itself are the only flows > that need to be reconstructed from scratch when a box's style changes. This > is because the adjacent inlines turn into anonymous block flows. > In Gecko those inlines don't turn into anonymous boxes, because we don't currently implement the CSS setup directly --- we allow a block's direct children to be a mixture of inline and block-level boxes. However, my guess is that your current approach is better, so stick with it. I'm wondering if any layout gurus have any advice as to what to do here. > What is the most elegant way to handle this case? Is there anything we > should be aware of in order to optimize this path? > Boris is the expert on this. Our basic approach in Gecko is to find the nearest ancestor that needs to be reconstructed and reconstruct it (and all its descendants). However, dbaron's pointed out many times that it would be helpful to also support reconstructing all an ancestor's children but not the ancestor itself. I think that's what you want to for your case. In other cases (tables) you will probably need to reconstruct some ancestors, so keep that possibility in mind. Are you handling the case yet where there's a display:block element inside a display:inline? That's closely related to your problem. Rob -- q“qIqfq qyqoquq qlqoqvqeq qtqhqoqsqeq qwqhqoq qlqoqvqeq qyqoquq,q qwqhqaqtq qcqrqeqdqiqtq qiqsq qtqhqaqtq qtqoq qyqoquq?q qEqvqeqnq qsqiqnqnqeqrqsq qlqoqvqeq qtqhqoqsqeq qwqhqoq qlqoqvqeq qtqhqeqmq.q qAqnqdq qiqfq qyqoquq qdqoq qgqoqoqdq qtqoq qtqhqoqsqeq qwqhqoq qaqrqeq qgqoqoqdq qtqoq qyqoquq,q qwqhqaqtq qcqrqeqdqiqtq qiqsq qtqhqaqtq qtqoq qyqoquq?q qEqvqeqnq qsqiqnqnqeqrqsq qdqoq qtqhqaqtq.q" _______________________________________________ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo