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

Unified Diff: content/renderer/render_widget.cc

Issue 8369006: [Aura] Support transparent webkit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 960fa49933998665f336e8b1172c1682d9403995..ce7b54e1802ea83a32bf17e003c2645a427a83f7 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -534,8 +534,19 @@ void RenderWidget::PaintRect(const gfx::Rect& rect,
SkShader::kRepeat_TileMode,
SkShader::kRepeat_TileMode);
paint.setShader(shader)->unref();
- paint.setXfermodeMode(SkXfermode::kSrcOver_Mode);
+
+ // Use kSrc_Mode to handle background_ transparency properly.
+ paint.setXfermodeMode(SkXfermode::kSrc_Mode);
+
+ // Canvas could contain multiple update rects. Clip to given rect so that
+ // we don't accidentally clear other update rects.
+ canvas->save();
+ SkRect clip;
+ clip.set(SkIntToScalar(rect.x()), SkIntToScalar(rect.y()),
+ SkIntToScalar(rect.right()), SkIntToScalar(rect.bottom()));
+ canvas->clipRect(clip);
canvas->drawPaint(paint);
+ canvas->restore();
}
// First see if this rect is a plugin that can paint itself faster.

Powered by Google App Engine
This is Rietveld 408576698