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()) |