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

Side by Side Diff: sky/engine/core/rendering/RenderView.cpp

Issue 1122423009: Make it possible to custom-paint without an Element. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Comment tweak Created 5 years, 7 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 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 // RenderViews should never be called to paint with an offset not on device pixels. 189 // RenderViews should never be called to paint with an offset not on device pixels.
190 ASSERT(LayoutPoint(IntPoint(paintOffset.x(), paintOffset.y())) == paintOffse t); 190 ASSERT(LayoutPoint(IntPoint(paintOffset.x(), paintOffset.y())) == paintOffse t);
191 191
192 // This avoids painting garbage between columns if there is a column gap. 192 // This avoids painting garbage between columns if there is a column gap.
193 if (m_frameView && style()->isOverflowPaged()) 193 if (m_frameView && style()->isOverflowPaged())
194 paintInfo.context->fillRect(paintInfo.rect, m_frameView->baseBackgroundC olor()); 194 paintInfo.context->fillRect(paintInfo.rect, m_frameView->baseBackgroundC olor());
195 195
196 paintObject(paintInfo, paintOffset, layers); 196 paintObject(paintInfo, paintOffset, layers);
197 } 197 }
198 198
199 void RenderView::paintBoxDecorationBackground(PaintInfo& paintInfo, const Layout Point&) 199 void RenderView::paintBoxDecorationBackground(PaintInfo& paintInfo, const Layout Point& paintOffset)
200 { 200 {
201 if (!view()) 201 if (!view())
202 return; 202 return;
203 203
204 // This code typically only executes if the root element's visibility has be en set to hidden, 204 // This code typically only executes if the root element's visibility has be en set to hidden,
205 // if there is a transform on the <html>, or if there is a page scale factor less than 1. 205 // if there is a transform on the <html>, or if there is a page scale factor less than 1.
206 // Only fill with the base background color (typically white) if we're the r oot document, 206 // Only fill with the base background color (typically white) if we're the r oot document,
207 // since iframes/frames with no background in the child document should show the parent's background. 207 // since iframes/frames with no background in the child document should show the parent's background.
208 if (!frameView()->isTransparent()) { 208 if (!frameView()->isTransparent()) {
209 Color baseColor = frameView()->baseBackgroundColor(); 209 Color baseColor = frameView()->baseBackgroundColor();
210 if (baseColor.alpha()) { 210 if (baseColor.alpha()) {
211 CompositeOperator previousOperator = paintInfo.context->compositeOpe ration(); 211 CompositeOperator previousOperator = paintInfo.context->compositeOpe ration();
212 paintInfo.context->setCompositeOperation(CompositeCopy); 212 paintInfo.context->setCompositeOperation(CompositeCopy);
213 paintInfo.context->fillRect(paintInfo.rect, baseColor); 213 paintInfo.context->fillRect(paintInfo.rect, baseColor);
214 paintInfo.context->setCompositeOperation(previousOperator); 214 paintInfo.context->setCompositeOperation(previousOperator);
215 } else { 215 } else {
216 paintInfo.context->clearRect(paintInfo.rect); 216 paintInfo.context->clearRect(paintInfo.rect);
217 } 217 }
218 } 218 }
219 paintCustomPainting(paintInfo, paintOffset);
219 } 220 }
220 221
221 void RenderView::absoluteQuads(Vector<FloatQuad>& quads) const 222 void RenderView::absoluteQuads(Vector<FloatQuad>& quads) const
222 { 223 {
223 quads.append(FloatRect(FloatPoint(), layer()->size())); 224 quads.append(FloatRect(FloatPoint(), layer()->size()));
224 } 225 }
225 226
226 static RenderObject* rendererAfterPosition(RenderObject* object, unsigned offset ) 227 static RenderObject* rendererAfterPosition(RenderObject* object, unsigned offset )
227 { 228 {
228 if (!object) 229 if (!object)
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 m_iframes.remove(iframe); 399 m_iframes.remove(iframe);
399 } 400 }
400 401
401 void RenderView::updateIFramesAfterLayout() 402 void RenderView::updateIFramesAfterLayout()
402 { 403 {
403 for (auto& iframe: m_iframes) 404 for (auto& iframe: m_iframes)
404 iframe->updateWidgetBounds(); 405 iframe->updateWidgetBounds();
405 } 406 }
406 407
407 } // namespace blink 408 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698