Chromium Code Reviews| Index: services/view_manager/server_view.cc |
| diff --git a/services/view_manager/server_view.cc b/services/view_manager/server_view.cc |
| index 17742447952f6a3d0cf54f91904cc8248104c30a..84cd23119e62327a7b5f7cae3a9e66709e5eb1a0 100644 |
| --- a/services/view_manager/server_view.cc |
| +++ b/services/view_manager/server_view.cc |
| @@ -11,11 +11,21 @@ |
| namespace view_manager { |
| +namespace { |
| + |
| +mojo::ViewportMetricsPtr CreateEmptyViewportMetrics() { |
| + mojo::ViewportMetricsPtr metrics = mojo::ViewportMetrics::New(); |
| + metrics->size = mojo::Size::New(); |
| + return metrics; |
| +} |
| +} |
| + |
| ServerView::ServerView(ServerViewDelegate* delegate, const ViewId& id) |
| : delegate_(delegate), |
| id_(id), |
| parent_(nullptr), |
| visible_(false), |
| + viewport_metrics_(CreateEmptyViewportMetrics()), |
| opacity_(1) { |
| DCHECK(delegate); // Must provide a delegate. |
| } |
| @@ -93,6 +103,16 @@ void ServerView::SetBounds(const gfx::Rect& bounds) { |
| delegate_->OnViewBoundsChanged(this, old_bounds, bounds); |
| } |
| +void ServerView::SetViewportMetrics(const mojo::ViewportMetrics& metrics) { |
| + if (viewport_metrics_->Equals(metrics)) |
| + return; |
| + |
| + viewport_metrics_ = metrics.Clone(); |
| + delegate_->OnViewViewportMetricsChanged(this, *viewport_metrics_, metrics); |
| + for (size_t i = 0; i < children_.size(); ++i) |
|
eseidel
2015/01/27 22:46:58
Unknown if this is needed or not.
|
| + children_[i]->SetViewportMetrics(metrics); |
| +} |
| + |
| const ServerView* ServerView::GetRoot() const { |
| const ServerView* view = this; |
| while (view && view->parent()) |