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 >>> >> >