Bug 15386 - RenderSVGText can't do partial repaints
Summary: RenderSVGText can't do partial repaints
Status: RESOLVED DUPLICATE of bug 40663
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: 523.x (Safari 3)
Hardware: Mac OS X 10.4
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-10-05 18:03 PDT by Eric Seidel (no email)
Modified: 2010-06-17 01:39 PDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Seidel (no email) 2007-10-05 18:03:39 PDT
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.
    }
Comment 1 Eric Seidel (no email) 2007-10-05 18:04:45 PDT
This issue was exposed by bug 14003 and worked around.  This bug exists to track fixing the underlying bug by enhancing RenderSVGText to support partial-repaints.
Comment 2 Nikolas Zimmermann 2010-06-17 01:39:24 PDT
40663 will fix this bug.

*** This bug has been marked as a duplicate of bug 40663 ***