On Aug 29, 8:03 am, fantasai <[EMAIL PROTECTED]> wrote: > Relationship of Rect and OverflowRect > ------------------------------------- > > 1. mRect is anchored in the parent's coordinate system > > 2. overflowRect is anchored in the frame's own coordinate system > > 3. overflowRect must contain mRect except in certain cases concerning > 'clip'
Correct > Reflow Expectations > ------------------- > > 4. The frame is expected to take care of any invalidation required by > its children, its borders, its outline, and its background. > > 5. The reflower is expected to take care of any invalidation required by > changes in the child's a) position > b) size More specifically the reflower is expected to invalidate the child's overflow area if the frame moved, and the difference in the old and new areas if the frame changed size. In practice the latter phrase means *both* the GetSize() areas and the overflow areas :-(. > Comments > -------- > > Assertion 3 is not strictly true because of the way nsRect::UnionRect is > implemented: if one rect is empty, then UnionRect takes the value of the > other rect, and therefore does not necessarily encompass any of the first > rect's coordinates. This means an assertion > frame->GetOverflowRect().Contains(frame->GetRect()) > will sometimes fail. Contains() should always succeed if the parameter rect is empty. That's a bug, I'll take a patch for that :-) Rob _______________________________________________ dev-tech-layout mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-layout

