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

Side by Side Diff: Source/core/paint/BoxPainter.cpp

Issue 1212963002: Remove BackgroundBleedBackgroundOverBorder (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: remove BackgroundBleedBackgroundOverBorder Created 5 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/paint/BoxDecorationData.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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/paint/BoxPainter.h" 6 #include "core/paint/BoxPainter.h"
7 7
8 #include "core/HTMLNames.h" 8 #include "core/HTMLNames.h"
9 #include "core/frame/Settings.h" 9 #include "core/frame/Settings.h"
10 #include "core/html/HTMLFrameOwnerElement.h" 10 #include "core/html/HTMLFrameOwnerElement.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 if (boxDecorationData.bleedAvoidance == BackgroundBleedClipLayer) 107 if (boxDecorationData.bleedAvoidance == BackgroundBleedClipLayer)
108 paintInfo.context->beginLayer(); 108 paintInfo.context->beginLayer();
109 } 109 }
110 110
111 // If we have a native theme appearance, paint that before painting our back ground. 111 // If we have a native theme appearance, paint that before painting our back ground.
112 // The theme will tell us whether or not we should also paint the CSS backgr ound. 112 // The theme will tell us whether or not we should also paint the CSS backgr ound.
113 IntRect snappedPaintRect(pixelSnappedIntRect(paintRect)); 113 IntRect snappedPaintRect(pixelSnappedIntRect(paintRect));
114 ThemePainter& themePainter = LayoutTheme::theme().painter(); 114 ThemePainter& themePainter = LayoutTheme::theme().painter();
115 bool themePainted = boxDecorationData.hasAppearance && !themePainter.paint(& m_layoutBox, paintInfo, snappedPaintRect); 115 bool themePainted = boxDecorationData.hasAppearance && !themePainter.paint(& m_layoutBox, paintInfo, snappedPaintRect);
116 if (!themePainted) { 116 if (!themePainted) {
117 if (boxDecorationData.bleedAvoidance == BackgroundBleedBackgroundOverBor der)
118 paintBorder(m_layoutBox, paintInfo, paintRect, style, boxDecorationD ata.bleedAvoidance);
119
120 paintBackground(paintInfo, paintRect, boxDecorationData.backgroundColor, boxDecorationData.bleedAvoidance); 117 paintBackground(paintInfo, paintRect, boxDecorationData.backgroundColor, boxDecorationData.bleedAvoidance);
121 118
122 if (boxDecorationData.hasAppearance) 119 if (boxDecorationData.hasAppearance)
123 themePainter.paintDecorations(&m_layoutBox, paintInfo, snappedPaintR ect); 120 themePainter.paintDecorations(&m_layoutBox, paintInfo, snappedPaintR ect);
124 } 121 }
125 paintBoxShadow(paintInfo, paintRect, style, Inset); 122 paintBoxShadow(paintInfo, paintRect, style, Inset);
126 123
127 // The theme will tell us whether or not we should also paint the CSS border . 124 // The theme will tell us whether or not we should also paint the CSS border .
128 if (boxDecorationData.hasBorderDecoration && boxDecorationData.bleedAvoidanc e != BackgroundBleedBackgroundOverBorder 125 if (boxDecorationData.hasBorderDecoration
129 && (!boxDecorationData.hasAppearance || (!themePainted && LayoutTheme::t heme().painter().paintBorderOnly(&m_layoutBox, paintInfo, snappedPaintRect))) 126 && (!boxDecorationData.hasAppearance || (!themePainted && LayoutTheme::t heme().painter().paintBorderOnly(&m_layoutBox, paintInfo, snappedPaintRect)))
130 && !(m_layoutBox.isTable() && toLayoutTable(&m_layoutBox)->collapseBorde rs())) 127 && !(m_layoutBox.isTable() && toLayoutTable(&m_layoutBox)->collapseBorde rs()))
131 paintBorder(m_layoutBox, paintInfo, paintRect, style, boxDecorationData. bleedAvoidance); 128 paintBorder(m_layoutBox, paintInfo, paintRect, style, boxDecorationData. bleedAvoidance);
132 129
133 if (boxDecorationData.bleedAvoidance == BackgroundBleedClipLayer) 130 if (boxDecorationData.bleedAvoidance == BackgroundBleedClipLayer)
134 paintInfo.context->endLayer(); 131 paintInfo.context->endLayer();
135 } 132 }
136 133
137 void BoxPainter::paintBackground(const PaintInfo& paintInfo, const LayoutRect& p aintRect, const Color& backgroundColor, BackgroundBleedAvoidance bleedAvoidance) 134 void BoxPainter::paintBackground(const PaintInfo& paintInfo, const LayoutRect& p aintRect, const Color& backgroundColor, BackgroundBleedAvoidance bleedAvoidance)
138 { 135 {
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 -fractionalInset * edges[BSLeft].width); 279 -fractionalInset * edges[BSLeft].width);
283 280
284 FloatRoundedRect backgroundRoundedRect = getBackgroundRoundedRect(obj, b orderRect, box, boxSize.width(), boxSize.height(), 281 FloatRoundedRect backgroundRoundedRect = getBackgroundRoundedRect(obj, b orderRect, box, boxSize.width(), boxSize.height(),
285 includeLogicalLeftEdge, includeLogicalRightEdge); 282 includeLogicalLeftEdge, includeLogicalRightEdge);
286 FloatRect insetRect(backgroundRoundedRect.rect()); 283 FloatRect insetRect(backgroundRoundedRect.rect());
287 insetRect.expand(insets); 284 insetRect.expand(insets);
288 FloatRoundedRect::Radii insetRadii(backgroundRoundedRect.radii()); 285 FloatRoundedRect::Radii insetRadii(backgroundRoundedRect.radii());
289 insetRadii.shrink(-insets.top(), -insets.bottom(), -insets.left(), -inse ts.right()); 286 insetRadii.shrink(-insets.top(), -insets.bottom(), -insets.left(), -inse ts.right());
290 return FloatRoundedRect(insetRect, insetRadii); 287 return FloatRoundedRect(insetRect, insetRadii);
291 } 288 }
292 if (bleedAvoidance == BackgroundBleedBackgroundOverBorder)
293 return obj.style()->getRoundedInnerBorderFor(borderRect, includeLogicalL eftEdge, includeLogicalRightEdge);
294 289
295 return getBackgroundRoundedRect(obj, borderRect, box, boxSize.width(), boxSi ze.height(), includeLogicalLeftEdge, includeLogicalRightEdge); 290 return getBackgroundRoundedRect(obj, borderRect, box, boxSize.width(), boxSi ze.height(), includeLogicalLeftEdge, includeLogicalRightEdge);
296 } 291 }
297 292
298 void BoxPainter::paintFillLayerExtended(LayoutBoxModelObject& obj, const PaintIn fo& paintInfo, const Color& color, const FillLayer& bgLayer, const LayoutRect& r ect, BackgroundBleedAvoidance bleedAvoidance, InlineFlowBox* box, const LayoutSi ze& boxSize, SkXfermode::Mode op, LayoutObject* backgroundObject) 293 void BoxPainter::paintFillLayerExtended(LayoutBoxModelObject& obj, const PaintIn fo& paintInfo, const Color& color, const FillLayer& bgLayer, const LayoutRect& r ect, BackgroundBleedAvoidance bleedAvoidance, InlineFlowBox* box, const LayoutSi ze& boxSize, SkXfermode::Mode op, LayoutObject* backgroundObject)
299 { 294 {
300 GraphicsContext* context = paintInfo.context; 295 GraphicsContext* context = paintInfo.context;
301 if (rect.isEmpty()) 296 if (rect.isEmpty())
302 return; 297 return;
303 298
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after
1049 } 1044 }
1050 } 1045 }
1051 1046
1052 bool BoxPainter::shouldForceWhiteBackgroundForPrintEconomy(const ComputedStyle& style, const Document& document) 1047 bool BoxPainter::shouldForceWhiteBackgroundForPrintEconomy(const ComputedStyle& style, const Document& document)
1053 { 1048 {
1054 return document.printing() && style.printColorAdjust() == PrintColorAdjustEc onomy 1049 return document.printing() && style.printColorAdjust() == PrintColorAdjustEc onomy
1055 && (!document.settings() || !document.settings()->shouldPrintBackgrounds ()); 1050 && (!document.settings() || !document.settings()->shouldPrintBackgrounds ());
1056 } 1051 }
1057 1052
1058 } // namespace blink 1053 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/paint/BoxDecorationData.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698