Yeah, but I also remembered on other thing.  The vast majority of
components are never made invisible, so adding a check in each layout bead
just-in-case they are made invisible isn't very PAYG.

So maybe there is some other way that setting visible=false can inject
code that handles sharing the CSS display property with the layouts.  Or
maybe it isn't worth worrying about right now.

My 2 cents,
-Alex

On 8/3/17, 8:50 AM, "Harbs" <harbs.li...@gmail.com> wrote:

>But it it doesn’t set display, we’re going to have to run layout every
>time the visibility changes.
>
>I’ve already made my changes. I’ll commit soon.
>
>Ah. I see what you mean. By doing it your way, there’s no reason to
>actually run layout until (or if) the visibility is set to true.
>
>That probably *is* better. I’ll commit what I did for now, because it at
>least fixes the bug, and when I have time, I’ll look into improving the
>layouts.
>
>Another thought:
>
>If visibility is turned on and off multiple times, this might be less
>efficient, but the layout might be able to store a flag to avoid running
>the layout if not needed…
>
>Harbs
>
>> On Aug 3, 2017, at 6:24 PM, Alex Harui <aha...@adobe.com.INVALID> wrote:
>> 
>> Right, so layout code would have to check for display=="none" and not
>>set
>> display and listen for the show event.
>> 
>> Maybe as you clean up the setting of display multiple times it will be
>> come clear as to whether listening for "show" is cheaper/cleaner than
>> displayStyleForLayout.
>> 
>> -Alex
>> 
>> On 8/3/17, 8:18 AM, "Harbs" <harbs.li...@gmail.com> wrote:
>> 
>>> The problem is that visible is set before the bead exists.
>>> 
>>> BTW, Some of the layout seem to be reading and setting display multiple
>>> times. That can cause layout thrashing. That should probably be
>>>resolved.
>>> 
>>>> On Aug 3, 2017, at 6:05 PM, Alex Harui <aha...@adobe.com.INVALID>
>>>>wrote:
>>>> 
>>>> FWIW, I'm not sure this is the best pattern.  It was what we did to
>>>>get
>>>> the examples to run.
>>>> 
>>>> Another option is that layout beads listen for changes to visible and
>>>> reset the CSS display style when visible changes.
>>>> 
>>>> Food for thought,
>>>> -Alex
>>>> 
>>>> On 8/3/17, 8:00 AM, "Harbs" <harbs.li...@gmail.com> wrote:
>>>> 
>>>>> I’m using a VerticalFlexLayout in a component. Under certain
>>>>> circumstances, I need to set the visibility of the component to
>>>>>false.
>>>>> 
>>>>> These two settings are contradictory in JS.
>>>>> 
>>>>> visible=false sets display to none
>>>>> VerticalFlexLayout sets the display to flex
>>>>> 
>>>>> When setting visible to false, it uses a property
>>>>> “displayStyleForLayout”
>>>>> to store the value set by the layout. The problem is that the layout
>>>>> might be applied AFTER visible is already set to false (which is the
>>>>> case
>>>>> in my situation).
>>>>> 
>>>>> I’m thinking of solving this by exposing displayStyleForLayout so it
>>>>> can
>>>>> be set by beads if necessary.
>>>>> 
>>>>> Scratch that. I see that already exists. Problem solved… I’ll fix the
>>>>> layouts.
>>>>> 
>>>>> Harbs
>>>> 
>>> 
>> 
>

Reply via email to