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

Reply via email to