| Index: ui/views/view.cc
|
| diff --git a/ui/views/view.cc b/ui/views/view.cc
|
| index 0fc755972d6d57de055a7ea9d31fa11733eaf13b..7093d056850bd1c0a0f3e69c0c450192734334e5 100644
|
| --- a/ui/views/view.cc
|
| +++ b/ui/views/view.cc
|
| @@ -777,7 +777,7 @@ void View::Paint(const ui::PaintContext& parent_context) {
|
|
|
| // If the view is backed by a layer, it should paint with itself as the origin
|
| // rather than relative to its parent.
|
| - ui::ClipTransformRecorder clip_transform_recorder(context);
|
| + ui::ClipTransformRecorder clip_transform_recorder(context, size());
|
| if (!layer()) {
|
| // Set the clip rect to the bounds of this View. Note that the X (or left)
|
| // position we pass to ClipRect takes into consideration whether or not the
|
| @@ -800,7 +800,10 @@ void View::Paint(const ui::PaintContext& parent_context) {
|
| clip_transform_recorder.Transform(transform_from_parent);
|
| }
|
|
|
| - if (is_invalidated || !paint_cache_.UseCache(context)) {
|
| + // Note that the cache is not aware of the offset of the view
|
| + // relative to the parent since painting is always done relative to
|
| + // the top left of the individual view.
|
| + if (is_invalidated || !paint_cache_.UseCache(context, size())) {
|
| ui::PaintRecorder recorder(context, size(), &paint_cache_);
|
| gfx::Canvas* canvas = recorder.canvas();
|
|
|
|
|