- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Fri, 15 Apr 2016 14:14:55 -0400
- To: Sergio Villar Senin <svillar@igalia.com>, www-style@w3.org
On 04/15/2016 10:12 AM, fantasai wrote: > On 04/15/2016 06:05 AM, Sergio Villar Senin wrote: >> First of all I'm quite happy to see this reduced proposal >> >> On 15/04/16 00:35, fantasai wrote: >>> >>> C. If one of the subgrid's grid items is placed in the >>> subgrid's first/last track, it is treated as if it >>> had additional margin on that edge equal to the >>> subgrid's margin+border+padding on that edge. >> >> As mentioned in our report[1] that might become more complicated if we >> nest subgrids, as any item in the subgrid could be potentially subject >> those those kind of adjustments (not only the ones on the edges). > > Right, so when querying the item for its outer size contribution, > you need to stack up the "extra margin" effect as you walk up the > grid tree. > > I don't think this should be particularly hard so long as you have > some way of querying where in its parent a particular item is, > placement-wise? Basically you need to do something like size = item.GetSizeContribution(); adjustment = 0; at = false; if item.parent != this at.iStart = item.GetRowStart() == 1 at.iEnd = item.GetRowEnd() == item.parent.GetLastRowIndex() at.bStart = item.GetColStart() == 1 at.bEnd = item.GetColEnd() == item.parent.GetLastColIndex() parent = item.parent while (parent != this) { /* subgrid ; add mbp */ mbp = parent.GetMBP() if at.iStart adjustment.iStart += mbp.iStart at.iStart = parent.GetRowStart() == 1 if at.iEnd adjustment.iEnd += mbp.iEnd at.iEnd = parent.GetRowEnd() == parent.parent.GetLastRowIndex() if at.bStart adjustment.iStart += mbp.bStart at.bStart = parent.GetColStart() == 1 if at.bEnd adjustment.iEnd += mbp.bEnd at.bEnd = parent.GetColEnd() == parent.parent.GetLastColIndex() parent = parent.parent size += adjustment ~fantasai
Received on Friday, 15 April 2016 18:15:31 UTC