Index: ui/aura/window.cc |
diff --git a/ui/aura/window.cc b/ui/aura/window.cc |
index 5c05d4440acd1f96f612415f583f5fb75170b244..85058a4a0cf10e0b4f85051eaa16f2d934f98964 100644 |
--- a/ui/aura/window.cc |
+++ b/ui/aura/window.cc |
@@ -409,6 +409,7 @@ void Window::SetTransform(const gfx::Transform& transform) { |
layer()->SetTransform(transform); |
FOR_EACH_OBSERVER(WindowObserver, observers_, |
OnWindowTransformed(this)); |
+ NotifyAncestorWindowTransformed(this); |
} |
void Window::SetLayoutManager(LayoutManager* layout_manager) { |
@@ -1317,6 +1318,15 @@ void Window::NotifyWindowVisibilityChangedUp(aura::Window* target, |
} |
} |
+void Window::NotifyAncestorWindowTransformed(Window* ancestor) { |
+ FOR_EACH_OBSERVER(WindowObserver, observers_, |
+ OnAncestorWindowTransformed(this, ancestor)); |
+ for (Window::Windows::const_iterator it = children_.begin(); |
+ it != children_.end(); ++it) { |
+ (*it)->NotifyAncestorWindowTransformed(ancestor); |
+ } |
+} |
+ |
void Window::OnWindowBoundsChanged(const gfx::Rect& old_bounds) { |
if (layer()) { |
bounds_ = layer()->bounds(); |