Re: [css-regions] Handling circular dependencies between flows

Hi Alan,

On 10/11/12 12:36 AM, "Alan Stearns" <stearns@adobe.com> wrote:

>On 10/10/12 8:59 AM, "Alan Stearns" <stearns@adobe.com> wrote:
>
>>I would like to solve the basic circular reference problem by deciding
>>that these circular references do not create regions. So I'd change this
>>sentence:
>>
>>---
>>Likewise, if the block container is part
>>of the flow with name <ident>, then
>>the block container does not format
>>any content visually.
>>---
>>
>>to this (and move it up in the definition to precede the text that
>>describes how regions are created)
>>
>>---
>>If the block container is part
>>of the flow with name <ident>,
>>then the block container does
>>not become a CSS Region.
>>---
>
>This wording solves the case where a named flow contains a region for
>itself, but does not generally solve more complex circular dependencies
>that can arise. Following the advice on this morning's call, I am stealing
>some text from css4-images [1] and will replace the current sentence above
>with a section that reads:
>
>---
>Named flows containing elements with the flow-from property set can
>produce nonsensical circular relationships, such as a named flow
>containing regions in its own region chain. These relationships can be
>easily and reliably detected and resolved, however, by keeping track of a
>dependency graph and using common cycle-detection algorithms.
>
>The dependency graph consists of edges such that:
>
>- Every named flow depends on its elements with the flow-from property set
>- Every element in a named flow with the flow-from property set to an
><ident> depends on the named flow with the <ident> name.
>
>If the graph contains a cycle, any elements with the flow-from property
>set to an <ident> participating in the cycle do not become CSS Regions.
>---

Considering the following example:

<style>
    .flowA { flow-into: flowA; }
    .regionFlowA { flow-from: flowA; }
    .flowB { flow-into: flowB; }
    .regionFlowB { flow-from: flowB; }
</style>
<div id="div1" class="flowA">
    <div id="div2" class="regionFlowB"></div>
</div>
<div id="div3" class="flowB">
    <div id="div4" class="regionFlowA"></div>
</div>

Would create something like flowA -> div2 -> flowB -> div4 -> flowA and in
this case, both div2 and div4 (having flow-from) do not become regions.
Did I get it right?

Cheers,
Mihnea

>
>
>Thanks,
>
>Alan
>
>[1] http://dev.w3.org/csswg/css4-images/#element-cycles
>
>

Received on Thursday, 11 October 2012 12:09:10 UTC