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

Side by Side Diff: Source/core/rendering/style/RenderStyle.cpp

Issue 23526037: Fix redrawing of a composited element with a filter. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
4 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. 4 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 579
580 // If the counter directives change, trigger a relayout to re-calculate coun ter values and rebuild the counter node tree. 580 // If the counter directives change, trigger a relayout to re-calculate coun ter values and rebuild the counter node tree.
581 const CounterDirectiveMap* mapA = rareNonInheritedData->m_counterDirectives. get(); 581 const CounterDirectiveMap* mapA = rareNonInheritedData->m_counterDirectives. get();
582 const CounterDirectiveMap* mapB = other->rareNonInheritedData->m_counterDire ctives.get(); 582 const CounterDirectiveMap* mapB = other->rareNonInheritedData->m_counterDire ctives.get();
583 if (!(mapA == mapB || (mapA && mapB && *mapA == *mapB))) 583 if (!(mapA == mapB || (mapA && mapB && *mapA == *mapB)))
584 return StyleDifferenceLayout; 584 return StyleDifferenceLayout;
585 585
586 if ((visibility() == COLLAPSE) != (other->visibility() == COLLAPSE)) 586 if ((visibility() == COLLAPSE) != (other->visibility() == COLLAPSE))
587 return StyleDifferenceLayout; 587 return StyleDifferenceLayout;
588 588
589 if ((rareNonInheritedData->opacity == 1 && other->rareNonInheritedData->opac ity < 1) 589 if (rareNonInheritedData->hasOpacity() != other->rareNonInheritedData->hasOp acity()) {
590 || (rareNonInheritedData->opacity < 1 && other->rareNonInheritedData->op acity == 1)) {
591 // FIXME: We would like to use SimplifiedLayout here, but we can't quite do that yet. 590 // FIXME: We would like to use SimplifiedLayout here, but we can't quite do that yet.
592 // We need to make sure SimplifiedLayout can operate correctly on Render Inlines (we will need 591 // We need to make sure SimplifiedLayout can operate correctly on Render Inlines (we will need
593 // to add a selfNeedsSimplifiedLayout bit in order to not get confused a nd taint every line). 592 // to add a selfNeedsSimplifiedLayout bit in order to not get confused a nd taint every line).
594 // In addition we need to solve the floating object issue when layers co me and go. Right now 593 // In addition we need to solve the floating object issue when layers co me and go. Right now
595 // a full layout is necessary to keep floating object lists sane. 594 // a full layout is necessary to keep floating object lists sane.
596 return StyleDifferenceLayout; 595 return StyleDifferenceLayout;
597 } 596 }
598 597
598 if (rareNonInheritedData->hasFilters() != other->rareNonInheritedData->hasFi lters())
599 return StyleDifferenceLayout;
600
599 if (!QuotesData::equals(rareInheritedData->quotes.get(), other->rareInherite dData->quotes.get())) 601 if (!QuotesData::equals(rareInheritedData->quotes.get(), other->rareInherite dData->quotes.get()))
600 return StyleDifferenceLayout; 602 return StyleDifferenceLayout;
601 603
602 // SVGRenderStyle::diff() might have returned StyleDifferenceRepaint, eg. if fill changes. 604 // SVGRenderStyle::diff() might have returned StyleDifferenceRepaint, eg. if fill changes.
603 // If eg. the font-size changed at the same time, we're not allowed to retur n StyleDifferenceRepaint, 605 // If eg. the font-size changed at the same time, we're not allowed to retur n StyleDifferenceRepaint,
604 // but have to return StyleDifferenceLayout, that's why this if branch come s after all branches 606 // but have to return StyleDifferenceLayout, that's why this if branch come s after all branches
605 // that are relevant for SVG and might return StyleDifferenceLayout. 607 // that are relevant for SVG and might return StyleDifferenceLayout.
606 if (svgChange != StyleDifferenceEqual) 608 if (svgChange != StyleDifferenceEqual)
607 return svgChange; 609 return svgChange;
608 610
(...skipping 994 matching lines...) Expand 10 before | Expand all | Expand 10 after
1603 surround.access()->border.m_image.setOutset(outset); 1605 surround.access()->border.m_image.setOutset(outset);
1604 } 1606 }
1605 1607
1606 ShapeValue* RenderStyle::initialShapeInside() 1608 ShapeValue* RenderStyle::initialShapeInside()
1607 { 1609 {
1608 DEFINE_STATIC_LOCAL(RefPtr<ShapeValue>, sOutsideValue, (ShapeValue::createOu tsideValue())); 1610 DEFINE_STATIC_LOCAL(RefPtr<ShapeValue>, sOutsideValue, (ShapeValue::createOu tsideValue()));
1609 return sOutsideValue.get(); 1611 return sOutsideValue.get();
1610 } 1612 }
1611 1613
1612 } // namespace WebCore 1614 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/css3/filters/remove-filter-repaint-expected.html ('k') | Source/core/rendering/style/StyleRareNonInheritedData.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698