Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Unified Diff: services/view_manager/server_view.cc

Issue 880743002: Plumb ViewportMetrics change notifications around the world and back. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Now without skydb changes Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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())

Powered by Google App Engine
This is Rietveld 408576698