A generic question: is there any in-depth documentation I can ready about block 
layout and how the various methods are supposed to be used? I've looked at the 
technical articles at http://webkit.org/coding/technical-articles.html but they 
seem to only have fairly high-level information and left me hungry for much 
more.

Specific comments below.

Regards,
Eric

On Sep 24, 2010, at 8:02 PM, David Hyatt wrote:

> It would probably be simpler to just subclass computeLogicalWidth (recently 
> renamed from calcWidth) and modify the m_marginLeft and m_marginRight 
> variables after calling the base class method.  Then you don't have to add 
> any new member variables.
> 
> The big problem with building the overhang into margins at the initial 
> calculation time, though, is that you may not get a relayout when objects 
> around you change, so you won't get an opportunity to adjust your margins 
> when that happens.  Your margins are also computed before you've even know 
> what's going on the line, so it could be really tricky to have all the 
> information you need.

Are you saying that subclassing computeLogicalWidth() would still mean that I'm 
computing the margins at the initial calculation time?

> It just doesn't seem like you can deal with all the corner cases without 
> integrating right into line layout.  I don't see how else you can know if you 
> have adequate available space to actually overhang without knowing what 
> you've seen so far on the line and how much space you have left on the line.

This would require special-casing the ruby blocks in line layout code, right? I 
was trying to avoid this, hoping that I could just extend the existing ruby 
objects.

>>> This method makes several assumptions that I'm not 100% sure are always 
>>> safe:
>>> * That a RenderRuby object holds only 1 RenderRubyRun object.
> 
> I believe you can have multiple RenderRubyRuns inside a single RenderRuby.
> 
> http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-ruby-element
> 
> "The ruby element allows one or more spans of phrasing content to be marked 
> with ruby annotations."
> 
>>> * That the text for the ruby text and ruby base are always the direct child 
>>> of the RenderRubyText and RenderRubyBase object.
> 
> I doubt that's a valid assumption.  I assume that you can have a content tree 
> of markup underneath a RenderRubyText and a RenderRubyBase, e.g., if you put 
> in some <i> and some <b>.  Anyway, I think you could just ask for the width() 
> of the rubyText() and rubyBase() objects themselves rather than drilling down 
> into their subtrees.

I couldn't figure out how to ask the RenderRubyText and RenderRubyRun objects 
for their width. They don't support the width() method. What method should I 
call?


_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to