Commit f2138623 authored by bdakin's avatar bdakin
Browse files

Reviewed by Maciej.

        Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9749 A 
        nested content editable div causes unnecessary screen redraws.
        
        We were repainting too much because we were deciding that we needed 
        a full layout because we didn't have a first line box. Our code 
        used to hold a lot of assumptions that positioned elements would 
        always have line boxes, but I fixed a few bugs a while back that 
        appeared because this assumption isn't true. This assumption was 
        also causing the extra redraws because the check meant that we 
        would decide to do a full layout for any positioned element that 
        did not have any line boxes in the first place. Maciej and I talked 
        about this, and we couldn't figure out why the check for line boxes 
        was part of determining if we need a full layout in the first 
        place. After hunting around the code, we decided to assume that 
        this check is antiquated. Removing it fixes the bug and doesn't 
        seem to break any layout tests. So, fingers crossed!

        Will add layout test so soon.

        * rendering/bidi.cpp:
        (WebCore::RenderBlock::layoutInlineChildren): Remove firstLineBox 
        check.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent aa6e9031
2006-07-09 Beth Dakin <bdakin@apple.com>
Reviewed by Maciej.
Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=9749 A
nested content editable div causes unnecessary screen redraws.
We were repainting too much because we were deciding that we needed
a full layout because we didn't have a first line box. Our code
used to hold a lot of assumptions that positioned elements would
always have line boxes, but I fixed a few bugs a while back that
appeared because this assumption isn't true. This assumption was
also causing the extra redraws because the check meant that we
would decide to do a full layout for any positioned element that
did not have any line boxes in the first place. Maciej and I talked
about this, and we couldn't figure out why the check for line boxes
was part of determining if we need a full layout in the first
place. After hunting around the code, we decided to assume that
this check is antiquated. Removing it fixes the bug and doesn't
seem to break any layout tests. So, fingers crossed!
Will add layout test so soon.
* rendering/bidi.cpp:
(WebCore::RenderBlock::layoutInlineChildren): Remove firstLineBox
check.
2006-07-09 David Harrison <harrison@apple.com>
Reviewed by John Sullivan.
......
......@@ -1491,7 +1491,7 @@ IntRect RenderBlock::layoutInlineChildren(bool relayoutChildren)
// Figure out if we should clear out our line boxes.
// FIXME: Handle resize eventually!
// FIXME: Do something better when floats are present.
bool fullLayout = !firstLineBox() || !firstChild() || selfNeedsLayout() || relayoutChildren || containsFloats();
bool fullLayout = !firstChild() || selfNeedsLayout() || relayoutChildren || containsFloats();
if (fullLayout)
deleteLineBoxes();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment