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

Side by Side Diff: mojo/services/view_manager/connection_manager.cc

Issue 745743002: Makes views be initially hidden (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: feedback Created 6 years 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 unified diff | Download patch
« no previous file with comments | « mojo/services/public/cpp/view_manager/view.h ('k') | mojo/services/view_manager/server_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "mojo/services/view_manager/connection_manager.h" 5 #include "mojo/services/view_manager/connection_manager.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "mojo/converters/geometry/geometry_type_converters.h" 9 #include "mojo/converters/geometry/geometry_type_converters.h"
10 #include "mojo/converters/input_events/input_events_type_converters.h" 10 #include "mojo/converters/input_events/input_events_type_converters.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 WindowManagerInternal* wm_internal) 113 WindowManagerInternal* wm_internal)
114 : delegate_(delegate), 114 : delegate_(delegate),
115 window_manager_client_connection_(nullptr), 115 window_manager_client_connection_(nullptr),
116 next_connection_id_(1), 116 next_connection_id_(1),
117 display_manager_(display_manager.Pass()), 117 display_manager_(display_manager.Pass()),
118 root_(new ServerView(this, RootViewId())), 118 root_(new ServerView(this, RootViewId())),
119 wm_internal_(wm_internal), 119 wm_internal_(wm_internal),
120 current_change_(nullptr), 120 current_change_(nullptr),
121 in_destructor_(false) { 121 in_destructor_(false) {
122 root_->SetBounds(gfx::Rect(800, 600)); 122 root_->SetBounds(gfx::Rect(800, 600));
123 root_->SetVisible(true);
123 display_manager_->Init(this); 124 display_manager_->Init(this);
124 } 125 }
125 126
126 ConnectionManager::~ConnectionManager() { 127 ConnectionManager::~ConnectionManager() {
127 in_destructor_ = true; 128 in_destructor_ = true;
128 129
129 STLDeleteValues(&connection_map_); 130 STLDeleteValues(&connection_map_);
130 // All the connections should have been destroyed. 131 // All the connections should have been destroyed.
131 DCHECK(connection_map_.empty()); 132 DCHECK(connection_map_.empty());
132 root_.reset(); 133 root_.reset();
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 const ServerView* relative, 378 const ServerView* relative,
378 OrderDirection direction) { 379 OrderDirection direction) {
379 if (!in_destructor_) 380 if (!in_destructor_)
380 display_manager_->SchedulePaint(view, gfx::Rect(view->bounds().size())); 381 display_manager_->SchedulePaint(view, gfx::Rect(view->bounds().size()));
381 } 382 }
382 383
383 void ConnectionManager::OnWillChangeViewVisibility(ServerView* view) { 384 void ConnectionManager::OnWillChangeViewVisibility(ServerView* view) {
384 if (in_destructor_) 385 if (in_destructor_)
385 return; 386 return;
386 387
388 // Need to repaint if the view was drawn (which means it'll in the process of
389 // hiding) or the view is transitioning to drawn.
390 if (view->IsDrawn(root_.get()) || (!view->visible() && view->parent() &&
391 view->parent()->IsDrawn(root_.get()))) {
392 display_manager_->SchedulePaint(view->parent(), view->bounds());
393 }
394
387 if (view != root_.get() && view->id() != ClonedViewId() && 395 if (view != root_.get() && view->id() != ClonedViewId() &&
388 root_->Contains(view) && view->IsDrawn(root_.get())) { 396 root_->Contains(view) && view->IsDrawn(root_.get())) {
389 // We're about to hide |view|, this would implicitly make any cloned views 397 // We're about to hide |view|, this would implicitly make any cloned views
390 // hide to. Reparent so that animations are still visible. 398 // hide to. Reparent so that animations are still visible.
391 ServerView* parent_above = view; 399 ServerView* parent_above = view;
392 ReparentClonedViews(view->parent(), &parent_above, view); 400 ReparentClonedViews(view->parent(), &parent_above, view);
393 } 401 }
394 402
395 for (auto& pair : connection_map_) { 403 for (auto& pair : connection_map_) {
396 pair.second->service()->ProcessWillChangeViewVisibility( 404 pair.second->service()->ProcessWillChangeViewVisibility(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 gfx::Size new_size = size.To<gfx::Size>(); 438 gfx::Size new_size = size.To<gfx::Size>();
431 display_manager_->SetViewportSize(new_size); 439 display_manager_->SetViewportSize(new_size);
432 } 440 }
433 441
434 void ConnectionManager::CloneAndAnimate(Id transport_view_id) { 442 void ConnectionManager::CloneAndAnimate(Id transport_view_id) {
435 CloneAndAnimate(ViewIdFromTransportId(transport_view_id)); 443 CloneAndAnimate(ViewIdFromTransportId(transport_view_id));
436 } 444 }
437 445
438 } // namespace service 446 } // namespace service
439 } // namespace mojo 447 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/public/cpp/view_manager/view.h ('k') | mojo/services/view_manager/server_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698