[Webkit-unassigned] [Bug 15386] New: RenderSVGText can't do partial repaints

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Oct 5 18:03:39 PDT 2007


http://bugs.webkit.org/show_bug.cgi?id=15386

           Summary: RenderSVGText can't do partial repaints
           Product: WebKit
           Version: 522+ (nightly)
          Platform: Macintosh
        OS/Version: Mac OS X 10.4
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: SVG
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: eric at webkit.org


RenderSVGText has a hack around RenderBlock's partial repaint code, because
it's not (yet) SVG aware.

void RenderSVGText::layout()
{
    ASSERT(needsLayout());

    // FIXME: This is a hack to avoid the RenderBlock::layout() partial
repainting code which is not (yet) SVG aware
    setNeedsLayout(true);



>From RenderBlock::layoutBlock:

    if (!didFullRepaint && repaintTop != repaintBottom) {
        IntRect repaintRect(m_overflowLeft, repaintTop, m_overflowWidth -
m_overflowLeft, repaintBottom - repaintTop);

        // FIXME: Deal with multiple column repainting.  We have to split the
repaint
        // rect up into multiple rects if it spans columns.

        repaintRect.inflate(maximalOutlineSize(PaintPhaseOutline));

        if (hasOverflowClip()) {
            // Adjust repaint rect for scroll offset
            int x = repaintRect.x();
            int y = repaintRect.y();
            layer()->subtractScrollOffset(x, y);
            repaintRect.setX(x);
            repaintRect.setY(y);

            // Don't allow this rect to spill out of our overflow box.
            repaintRect.intersect(IntRect(0, 0, m_width, m_height));
        }

        RenderView* v = view();
        // Make sure the rect is still non-empty after intersecting for
overflow above
        if (!repaintRect.isEmpty() && v && v->frameView())
            v->frameView()->addRepaintInfo(this, repaintRect); // We need to do
a partial repaint of our content.
    }


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



More information about the webkit-unassigned mailing list