Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(303)

Side by Side Diff: Source/core/rendering/RenderBox.cpp

Issue 131133004: [CSS Shapes] Dynamically created element with image valued shape-outside doesn't update (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/rendering/RenderBlock.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 1612 matching lines...) Expand 10 before | Expand all | Expand 10 after
1623 { 1623 {
1624 if (!parent()) 1624 if (!parent())
1625 return; 1625 return;
1626 1626
1627 if ((style()->borderImage().image() && style()->borderImage().image()->data( ) == image) || 1627 if ((style()->borderImage().image() && style()->borderImage().image()->data( ) == image) ||
1628 (style()->maskBoxImage().image() && style()->maskBoxImage().image()->dat a() == image)) { 1628 (style()->maskBoxImage().image() && style()->maskBoxImage().image()->dat a() == image)) {
1629 repaint(); 1629 repaint();
1630 return; 1630 return;
1631 } 1631 }
1632 1632
1633 ShapeValue* shapeOutsideValue = style()->shapeOutside();
1634 if (!(frameView() && frameView()->isInPerformLayout()) && isFloating() && sh apeOutsideValue && shapeOutsideValue->image() && shapeOutsideValue->image()->dat a() == image) {
eseidel 2014/02/04 17:40:48 We shouldn't be talking to renderers who cannot re
1635 ShapeOutsideInfo::ensureInfo(this)->dirtyShapeSize();
1636 markShapeOutsideDependentsForLayout();
1637 }
1638
1633 bool didFullRepaint = repaintLayerRectsForImage(image, style()->backgroundLa yers(), true); 1639 bool didFullRepaint = repaintLayerRectsForImage(image, style()->backgroundLa yers(), true);
1634 if (!didFullRepaint) 1640 if (!didFullRepaint)
1635 repaintLayerRectsForImage(image, style()->maskLayers(), false); 1641 repaintLayerRectsForImage(image, style()->maskLayers(), false);
1636 1642
1637
1638 if (hasLayer() && layer()->hasCompositedMask() && layersUseImage(image, styl e()->maskLayers())) 1643 if (hasLayer() && layer()->hasCompositedMask() && layersUseImage(image, styl e()->maskLayers()))
1639 layer()->contentChanged(MaskImageChanged); 1644 layer()->contentChanged(MaskImageChanged);
1640 } 1645 }
1641 1646
1642 bool RenderBox::repaintLayerRectsForImage(WrappedImagePtr image, const FillLayer * layers, bool drawingBackground) 1647 bool RenderBox::repaintLayerRectsForImage(WrappedImagePtr image, const FillLayer * layers, bool drawingBackground)
1643 { 1648 {
1644 LayoutRect rendererRect; 1649 LayoutRect rendererRect;
1645 RenderBox* layerRenderer = 0; 1650 RenderBox* layerRenderer = 0;
1646 1651
1647 for (const FillLayer* curLayer = layers; curLayer; curLayer = curLayer->next ()) { 1652 for (const FillLayer* curLayer = layers; curLayer; curLayer = curLayer->next ()) {
(...skipping 3268 matching lines...) Expand 10 before | Expand all | Expand 10 after
4916 return 0; 4921 return 0;
4917 4922
4918 if (!layoutState && !flowThreadContainingBlock()) 4923 if (!layoutState && !flowThreadContainingBlock())
4919 return 0; 4924 return 0;
4920 4925
4921 RenderBlock* containerBlock = containingBlock(); 4926 RenderBlock* containerBlock = containingBlock();
4922 return containerBlock->offsetFromLogicalTopOfFirstPage() + logicalTop(); 4927 return containerBlock->offsetFromLogicalTopOfFirstPage() + logicalTop();
4923 } 4928 }
4924 4929
4925 } // namespace WebCore 4930 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBlock.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698