Changeset 47798 in webkit


Ignore:
Timestamp:
Aug 26, 2009 3:30:11 PM (15 years ago)
Author:
hyatt@apple.com
Message:

WebCore: https://bugs.webkit.org/show_bug.cgi?id=28718, image inside relpositioned inline doesn't paint.
Make sure vertical overflow is still computed across self-painting layers, even though it isn't
propagated to parents.

Reviewed by Dan Bernstein.

Added fast/repaint/rel-positioned-inline-with-overflow.html

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::computeVerticalOverflow):

LayoutTests: Add layout test for relpositioned inline regression.

Reviewed by Dan Bernstein.

  • fast/repaint/rel-positioned-inline-with-overflow.html: Added.
  • platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.checksum: Added.
  • platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.png: Added.
  • platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.txt: Added.
Location:
trunk
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r47796 r47798  
     12009-08-26  Dave Hyatt  <hyatt@apple.com>
     2
     3        Add layout test for relpositioned inline regression.
     4
     5        Reviewed by Dan Bernstein.
     6
     7        * fast/repaint/rel-positioned-inline-with-overflow.html: Added.
     8        * platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.checksum: Added.
     9        * platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.png: Added.
     10        * platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.txt: Added.
     11
    1122009-08-26  Dan Bernstein  <mitz@apple.com>
    213
  • trunk/WebCore/ChangeLog

    r47797 r47798  
     12009-08-26  Dave Hyatt  <hyatt@apple.com>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=28718, image inside relpositioned inline doesn't paint.
     6        Make sure vertical overflow is still computed across self-painting layers, even though it isn't
     7        propagated to parents.
     8
     9        Added fast/repaint/rel-positioned-inline-with-overflow.html
     10
     11        * rendering/InlineFlowBox.cpp:
     12        (WebCore::InlineFlowBox::computeVerticalOverflow):
     13
    1142009-08-26  David Levin  <levin@chromium.org>
    215
  • trunk/WebCore/rendering/InlineFlowBox.cpp

    r47590 r47798  
    579579            topVisualOverflow = min(curr->y() + childOverflowTop, topVisualOverflow);
    580580            bottomVisualOverflow = max(curr->y() + text->height() + childOverflowBottom, bottomVisualOverflow);
    581         } else if (!curr->boxModelObject()->hasSelfPaintingLayer()) {
     581        } else {
    582582            // Only include overflow from inline flows and replaced inlines if they do not paint themselves.
     583            bool childIsSelfPainting = curr->boxModelObject()->hasSelfPaintingLayer();
    583584            if (curr->renderer()->isRenderInline()) {
    584585                InlineFlowBox* flow = static_cast<InlineFlowBox*>(curr);
    585586                flow->computeVerticalOverflow(lineTop, lineBottom, strictMode);
    586                 topLayoutOverflow = min(topLayoutOverflow, flow->topLayoutOverflow());
    587                 bottomLayoutOverflow = max(bottomLayoutOverflow, flow->bottomLayoutOverflow());
    588                 topVisualOverflow = min(topVisualOverflow, flow->topVisualOverflow());
    589                 bottomVisualOverflow = max(bottomVisualOverflow, flow->bottomVisualOverflow());
    590             } else {
     587                if (!childIsSelfPainting) {
     588                    topLayoutOverflow = min(topLayoutOverflow, flow->topLayoutOverflow());
     589                    bottomLayoutOverflow = max(bottomLayoutOverflow, flow->bottomLayoutOverflow());
     590                    topVisualOverflow = min(topVisualOverflow, flow->topVisualOverflow());
     591                    bottomVisualOverflow = max(bottomVisualOverflow, flow->bottomVisualOverflow());
     592                }
     593            } else if (!childIsSelfPainting){
    591594                RenderBox* box = toRenderBox(curr->renderer());
    592595                int boxY = curr->y();
Note: See TracChangeset for help on using the changeset viewer.