| Index: views/view.cc
|
| ===================================================================
|
| --- views/view.cc (revision 107719)
|
| +++ views/view.cc (working copy)
|
| @@ -18,7 +18,6 @@
|
| #include "ui/gfx/canvas_skia.h"
|
| #include "ui/gfx/compositor/compositor.h"
|
| #include "ui/gfx/compositor/layer.h"
|
| -#include "ui/gfx/compositor/layer_animator.h"
|
| #include "ui/gfx/interpolated_transform.h"
|
| #include "ui/gfx/path.h"
|
| #include "ui/gfx/point3.h"
|
| @@ -26,6 +25,7 @@
|
| #include "views/background.h"
|
| #include "views/context_menu_controller.h"
|
| #include "views/drag_controller.h"
|
| +#include "views/layer_property_setter.h"
|
| #include "views/layout/layout_manager.h"
|
| #include "views/views_delegate.h"
|
| #include "views/widget/native_widget_private.h"
|
| @@ -424,7 +424,7 @@
|
| void View::SetTransform(const ui::Transform& transform) {
|
| if (!transform.HasChange()) {
|
| if (layer()) {
|
| - layer()->SetTransform(transform);
|
| + layer_property_setter_->SetTransform(layer(), transform);
|
| if (!paint_to_layer_)
|
| DestroyLayer();
|
| } else {
|
| @@ -433,7 +433,7 @@
|
| } else {
|
| if (!layer())
|
| CreateLayer();
|
| - layer()->SetTransform(transform);
|
| + layer_property_setter_->SetTransform(layer(), transform);
|
| layer()->ScheduleDraw();
|
| }
|
| }
|
| @@ -447,6 +447,20 @@
|
| }
|
| }
|
|
|
| +void View::SetLayerPropertySetter(LayerPropertySetter* setter) {
|
| + DCHECK(layer());
|
| + LayerPropertySetter* old_setter = layer_property_setter_.get();
|
| + if (!layer() || (old_setter && old_setter == setter))
|
| + return;
|
| + if (!setter)
|
| + setter = LayerPropertySetter::CreateDefaultSetter();
|
| +
|
| + if (old_setter)
|
| + old_setter->Uninstalled(layer());
|
| + layer_property_setter_.reset(setter);
|
| + layer_property_setter_->Installed(layer());
|
| +}
|
| +
|
| // RTL positioning -------------------------------------------------------------
|
|
|
| gfx::Rect View::GetMirroredBounds() const {
|
| @@ -1143,7 +1157,8 @@
|
|
|
| void View::UpdateChildLayerBounds(const gfx::Point& offset) {
|
| if (layer()) {
|
| - layer()->SetBounds(gfx::Rect(offset.x(), offset.y(), width(), height()));
|
| + layer_property_setter_->SetBounds(layer(), gfx::Rect(offset.x(), offset.y(),
|
| + width(), height()));
|
| } else {
|
| for (int i = 0, count = child_count(); i < count; ++i) {
|
| gfx::Point new_offset(offset.x() + child_at(i)->x(),
|
| @@ -1159,7 +1174,7 @@
|
| PaintCommon(canvas);
|
| }
|
|
|
| -void View::OnLayerAnimationEnded(const ui::LayerAnimationSequence* animation) {
|
| +void View::OnLayerAnimationEnded(const ui::Animation* animation) {
|
| }
|
|
|
| void View::ReorderLayers() {
|
| @@ -1584,9 +1599,9 @@
|
| gfx::Point offset;
|
| parent_->CalculateOffsetToAncestorWithLayer(&offset, NULL);
|
| offset.Offset(x(), y());
|
| - layer()->SetBounds(gfx::Rect(offset, size()));
|
| + layer_property_setter_->SetBounds(layer(), gfx::Rect(offset, size()));
|
| } else {
|
| - layer()->SetBounds(bounds_);
|
| + layer_property_setter_->SetBounds(layer(), bounds_);
|
| }
|
| // TODO(beng): this seems redundant with the SchedulePaint at the top of
|
| // this function. explore collapsing.
|
| @@ -1770,6 +1785,10 @@
|
|
|
| layer_.reset(new ui::Layer(NULL));
|
| layer_->set_delegate(this);
|
| + if (layer_property_setter_.get())
|
| + layer_property_setter_->Installed(layer());
|
| + else
|
| + SetLayerPropertySetter(NULL);
|
|
|
| UpdateParentLayers();
|
| UpdateLayerVisibility();
|
| @@ -1840,6 +1859,9 @@
|
| new_parent->Add(children[i]);
|
| }
|
|
|
| + if (layer_property_setter_.get())
|
| + layer_property_setter_->Uninstalled(layer());
|
| +
|
| layer_.reset();
|
|
|
| if (new_parent)
|
|
|