Chromium Code Reviews| Index: ui/aura/window.cc |
| diff --git a/ui/aura/window.cc b/ui/aura/window.cc |
| index 2c9aab82d83b371a3d53047c2822992457062638..9aaae40998a5d85bf0cb01a7f925b3d2d9d1d025 100644 |
| --- a/ui/aura/window.cc |
| +++ b/ui/aura/window.cc |
| @@ -515,15 +515,15 @@ void Window::AddChild(Window* child) { |
| if (child->parent()) |
| child->parent()->RemoveChildImpl(child, this); |
| + child->parent_ = this; |
| + |
| gfx::Vector2d offset; |
| aura::Window* ancestor_with_layer = GetAncestorWithLayer(&offset); |
| if (ancestor_with_layer) { |
| - offset += child->bounds().OffsetFromOrigin(); |
| + offset += child->GetTargetBounds().OffsetFromOrigin(); |
|
oshima
2014/04/22 20:47:11
Sorry if I'm misunderstanding something, but I won
varkha
2014/04/22 20:59:05
Isn't that how Window::GetTargetBounds is implemen
oshima
2014/04/22 22:57:11
It looks to me that this is wrong if a) the child
|
| child->ReparentLayers(ancestor_with_layer->layer(), offset); |
| } |
| - child->parent_ = this; |
| - |
| children_.push_back(child); |
| if (layout_manager_) |
| layout_manager_->OnWindowAddedToLayout(child); |
| @@ -665,7 +665,7 @@ bool Window::ContainsPointInRoot(const gfx::Point& point_in_root) const { |
| } |
| bool Window::ContainsPoint(const gfx::Point& local_point) const { |
| - return gfx::Rect(bounds().size()).Contains(local_point); |
| + return gfx::Rect(GetTargetBounds().size()).Contains(local_point); |
| } |
| Window* Window::GetEventHandlerForPoint(const gfx::Point& local_point) { |
| @@ -1050,8 +1050,8 @@ void Window::UnparentLayers(bool has_layerless_ancestor, |
| if (layer()->parent()) |
| layer()->parent()->Remove(layer()); |
| if (has_layerless_ancestor) { |
| - const gfx::Rect real_bounds(bounds_); |
| - gfx::Rect layer_bounds(layer()->bounds()); |
| + const gfx::Rect real_bounds(GetTargetBounds()); |
| + gfx::Rect layer_bounds(layer()->GetTargetBounds()); |
| layer_bounds.Offset(-offset); |
| layer()->SetBounds(layer_bounds); |
| bounds_ = real_bounds; |
| @@ -1066,12 +1066,12 @@ void Window::ReparentLayers(ui::Layer* parent_layer, |
| for (size_t i = 0; i < children_.size(); ++i) { |
| children_[i]->ReparentLayers( |
| parent_layer, |
| - offset + children_[i]->bounds().OffsetFromOrigin()); |
| + offset + children_[i]->GetTargetBounds().OffsetFromOrigin()); |
| } |
| } else { |
| - const gfx::Rect real_bounds(bounds()); |
| + const gfx::Rect real_bounds(GetTargetBounds()); |
| parent_layer->Add(layer()); |
| - gfx::Rect layer_bounds(layer()->bounds().size()); |
| + gfx::Rect layer_bounds(layer()->GetTargetBounds().size()); |
| layer_bounds += offset; |
| layer()->SetBounds(layer_bounds); |
| bounds_ = real_bounds; |
| @@ -1083,7 +1083,7 @@ void Window::OffsetLayerBounds(const gfx::Vector2d& offset) { |
| for (size_t i = 0; i < children_.size(); ++i) |
| children_[i]->OffsetLayerBounds(offset); |
| } else { |
| - gfx::Rect layer_bounds(layer()->bounds()); |
| + gfx::Rect layer_bounds(layer()->GetTargetBounds()); |
| layer_bounds += offset; |
| layer()->SetBounds(layer_bounds); |
| } |
| @@ -1435,7 +1435,7 @@ const Window* Window::GetAncestorWithLayer(gfx::Vector2d* offset) const { |
| if (window->layer()) |
| return window; |
| if (offset) |
| - *offset += window->bounds().OffsetFromOrigin(); |
| + *offset += window->GetTargetBounds().OffsetFromOrigin(); |
| } |
| if (offset) |
| *offset = gfx::Vector2d(); |