I’m suggesting that we change defaults.css from: Application { padding: 0px; margin: 0px; }
to: Application { padding: 0px; margin: 0px; position: relative; } I believe this will resolve this issue as the default would cascade down to all sub-elements. The default would be relative, but beads would be free to change that to whatever they want. Of course, that would dictate that UIBase belongs in Basic and not Core… ;-) Harbs > On Jun 4, 2018, at 7:10 PM, Alex Harui <aha...@adobe.com.INVALID> wrote: > > I’m not sure exactly what change you are proposing, but UIBase used to set > position=relative on all positioners. We took that away so that the "flex" > and other display/layout styles would not have to deal with the excess > clutter and overhead of having set position on so many elements in the DOM. > Via PAYG, only the elements that need to have a style.position should have it > set. > > My 2 cents, > -Alex > > On 6/4/18, 8:44 AM, "Harbs" <harbs.li...@gmail.com> wrote: > > It just occurred to me that the problem is due to the default position > being static. > > I just added position: relative; to the .Application css and that resolved > the issue as well. > > I wonder if we could completely do away with the offsetParent logic in > UIBase if we make the default position: relative. That would have a major > positive impact on performance. > > Thoughts? > Harbs > >> On Jun 4, 2018, at 6:36 PM, Alex Harui <aha...@adobe.com.INVALID> wrote: >> >> Hi Yishay, >> >> IMO, the new fix is better. And you took the right approach by examining >> the code flow in the debugger. When layout fails for what appears to be a >> timing issue (in this case, offsetParent not set), we definitely want to >> take the time to carefully analyze why there is a timing issue instead of >> apply code to work around the current lifecycle. >> >> I'm not sure we can recommend a general pattern for layouts. I think there >> is some PAYG involved. It could be that in some cases the View should be >> responsible for setting style.position. Then the layouts don't have to >> spend the time verifying style.position. In other cases the layouts could >> be used in places where other potential layouts don't rely on style.position >> being a particular value. I think BasicLayout for Containers is an example. >> >> The code you used could be put into a utility function for layouts to use to >> guarantee that x,y will work as expected. >> >> Thanks, >> -Alex >> >> On 6/4/18, 8:22 AM, "yishayw" <yishayj...@hotmail.com> wrote: >> >> Looking at it some more it has nothing to do with data binding. I pushed a >> different fix (799f1878250d8c69347f08442c2c333740efdb8d) that changes the >> layout itself. Here it's assumed the offsetParent is explicitly set before >> children's x and y are set. Should this be a general pattern? >> >> >> >> >> -- >> Sent from: >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-royale-development.20373.n8.nabble.com%2F&data=02%7C01%7Caharui%40adobe.com%7Cb3fbf0fe3aef48f404ce08d5ca2f0006%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636637225574936981&sdata=tQL6czkhz6TGNfiVuLzM8BpNPd%2BudGur3FGTGyZUJew%3D&reserved=0 >> >> > > >