[Webkit-unassigned] [Bug 92800] Table test is invalidating the wrong rect

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jul 31 16:58:05 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=92800





--- Comment #11 from Eric Seidel <eric at webkit.org>  2012-07-31 16:58:05 PST ---
It appears that when RenderTable does a layout, it first tells its sections to layout themselves:

    for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
        if (child->isTableSection()) {
            child->layoutIfNeeded();
            RenderTableSection* section = toRenderTableSection(child);
            totalSectionLogicalHeight += section->calcRowLogicalHeight();
            if (collapsing)
                section->recalcOuterBorder();
            ASSERT(!section->needsLayout());
        } else if (child->isRenderTableCol()) {
            child->layoutIfNeeded();
            ASSERT(!child->needsLayout());
        }
    }

And then a few lines later, again:

    for (RenderTableSection* section = topSection(); section; section = sectionBelow(section))
        section->layoutRows();

I'm not sure why RenderTable asks its sections to layout twice.

The first time, it goes through RenderTableSection::layout() and the second time through RenderTableSection::layoutRows().

both times it ends up calling cell->layoutIfNeeded().  So clearly somehow the cells are being set as needing layout in between the two layout() calls.

Still investigating.  But this clearly explains the overpainting I'm seeing.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list