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

Side by Side Diff: components/mus/ws/window_tree_impl.cc

Issue 1527183003: Change mojo enums to be scoped enums in the generated C++ bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mojo-binding-equals
Patch Set: Created 4 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 unified diff | Download patch
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 "components/mus/ws/window_tree_impl.h" 5 #include "components/mus/ws/window_tree_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 is_embed_root_(false), 73 is_embed_root_(false),
74 window_manager_internal_(nullptr) { 74 window_manager_internal_(nullptr) {
75 ServerWindow* window = GetWindow(root_id); 75 ServerWindow* window = GetWindow(root_id);
76 CHECK(window); 76 CHECK(window);
77 root_.reset(new WindowId(root_id)); 77 root_.reset(new WindowId(root_id));
78 if (window->GetRoot() == window) { 78 if (window->GetRoot() == window) {
79 access_policy_.reset(new WindowManagerAccessPolicy(id_, this)); 79 access_policy_.reset(new WindowManagerAccessPolicy(id_, this));
80 is_embed_root_ = true; 80 is_embed_root_ = true;
81 } else { 81 } else {
82 access_policy_.reset(new DefaultAccessPolicy(id_, this)); 82 access_policy_.reset(new DefaultAccessPolicy(id_, this));
83 is_embed_root_ = 83 is_embed_root_ = (policy_bitmask & WindowTree::kAccessPolicyEmbedRoot) != 0;
84 (policy_bitmask & WindowTree::ACCESS_POLICY_EMBED_ROOT) != 0;
85 } 84 }
86 } 85 }
87 86
88 WindowTreeImpl::~WindowTreeImpl() { 87 WindowTreeImpl::~WindowTreeImpl() {
89 DestroyWindows(); 88 DestroyWindows();
90 } 89 }
91 90
92 void WindowTreeImpl::Init(mojom::WindowTreeClient* client, 91 void WindowTreeImpl::Init(mojom::WindowTreeClient* client,
93 mojom::WindowTreePtr tree) { 92 mojom::WindowTreePtr tree) {
94 DCHECK(!client_); 93 DCHECK(!client_);
95 client_ = client; 94 client_ = client;
96 std::vector<const ServerWindow*> to_send; 95 std::vector<const ServerWindow*> to_send;
97 if (root_.get()) 96 if (root_.get())
98 GetUnknownWindowsFrom(GetWindow(*root_), &to_send); 97 GetUnknownWindowsFrom(GetWindow(*root_), &to_send);
99 98
100 // TODO(beng): verify that host can actually be nullptr here. 99 // TODO(beng): verify that host can actually be nullptr here.
101 WindowTreeHostImpl* host = GetHost(); 100 WindowTreeHostImpl* host = GetHost();
102 const ServerWindow* focused_window = 101 const ServerWindow* focused_window =
103 host ? host->GetFocusedWindow() : nullptr; 102 host ? host->GetFocusedWindow() : nullptr;
104 if (focused_window) 103 if (focused_window)
105 focused_window = access_policy_->GetWindowForFocusChange(focused_window); 104 focused_window = access_policy_->GetWindowForFocusChange(focused_window);
106 const Id focused_window_transport_id(WindowIdToTransportId( 105 const Id focused_window_transport_id(WindowIdToTransportId(
107 focused_window ? focused_window->id() : WindowId())); 106 focused_window ? focused_window->id() : WindowId()));
108 107
109 client->OnEmbed(id_, WindowToWindowData(to_send.front()), std::move(tree), 108 client->OnEmbed(id_, WindowToWindowData(to_send.front()), std::move(tree),
110 focused_window_transport_id, 109 focused_window_transport_id,
111 is_embed_root_ ? WindowTree::ACCESS_POLICY_EMBED_ROOT 110 is_embed_root_ ? WindowTree::kAccessPolicyEmbedRoot
112 : WindowTree::ACCESS_POLICY_DEFAULT); 111 : WindowTree::kAccessPolicyDefault);
113 } 112 }
114 113
115 const ServerWindow* WindowTreeImpl::GetWindow(const WindowId& id) const { 114 const ServerWindow* WindowTreeImpl::GetWindow(const WindowId& id) const {
116 if (id_ == id.connection_id) { 115 if (id_ == id.connection_id) {
117 WindowMap::const_iterator i = window_map_.find(id.window_id); 116 WindowMap::const_iterator i = window_map_.find(id.window_id);
118 return i == window_map_.end() ? NULL : i->second; 117 return i == window_map_.end() ? NULL : i->second;
119 } 118 }
120 return connection_manager_->GetWindow(id); 119 return connection_manager_->GetWindow(id);
121 } 120 }
122 121
(...skipping 16 matching lines...) Expand all
139 (is_embed_root_ && IsWindowKnown(connection_root)))) { 138 (is_embed_root_ && IsWindowKnown(connection_root)))) {
140 client()->OnEmbeddedAppDisconnected( 139 client()->OnEmbeddedAppDisconnected(
141 WindowIdToTransportId(*connection->root_)); 140 WindowIdToTransportId(*connection->root_));
142 } 141 }
143 } 142 }
144 143
145 void WindowTreeImpl::NotifyChangeCompleted( 144 void WindowTreeImpl::NotifyChangeCompleted(
146 uint32_t change_id, 145 uint32_t change_id,
147 mojom::WindowManagerErrorCode error_code) { 146 mojom::WindowManagerErrorCode error_code) {
148 client_->OnChangeCompleted( 147 client_->OnChangeCompleted(
149 change_id, error_code == mojom::WINDOW_MANAGER_ERROR_CODE_SUCCESS); 148 change_id, error_code == mojom::WindowManagerErrorCode::SUCCESS);
150 } 149 }
151 150
152 bool WindowTreeImpl::NewWindow( 151 bool WindowTreeImpl::NewWindow(
153 const WindowId& window_id, 152 const WindowId& window_id,
154 const std::map<std::string, std::vector<uint8_t>>& properties) { 153 const std::map<std::string, std::vector<uint8_t>>& properties) {
155 if (window_id.connection_id != id_) 154 if (window_id.connection_id != id_)
156 return false; 155 return false;
157 if (window_map_.find(window_id.window_id) != window_map_.end()) 156 if (window_map_.find(window_id.window_id) != window_map_.end())
158 return false; 157 return false;
159 window_map_[window_id.window_id] = 158 window_map_[window_id.window_id] =
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 484
486 if (!access_policy_->CanReorderWindow(window, relative_window, direction)) 485 if (!access_policy_->CanReorderWindow(window, relative_window, direction))
487 return false; 486 return false;
488 487
489 std::vector<const ServerWindow*> children = window->parent()->GetChildren(); 488 std::vector<const ServerWindow*> children = window->parent()->GetChildren();
490 const size_t child_i = 489 const size_t child_i =
491 std::find(children.begin(), children.end(), window) - children.begin(); 490 std::find(children.begin(), children.end(), window) - children.begin();
492 const size_t target_i = 491 const size_t target_i =
493 std::find(children.begin(), children.end(), relative_window) - 492 std::find(children.begin(), children.end(), relative_window) -
494 children.begin(); 493 children.begin();
495 if ((direction == mojom::ORDER_DIRECTION_ABOVE && child_i == target_i + 1) || 494 if ((direction == mojom::OrderDirection::ABOVE && child_i == target_i + 1) ||
496 (direction == mojom::ORDER_DIRECTION_BELOW && child_i + 1 == target_i)) { 495 (direction == mojom::OrderDirection::BELOW && child_i + 1 == target_i)) {
497 return false; 496 return false;
498 } 497 }
499 498
500 return true; 499 return true;
501 } 500 }
502 501
503 bool WindowTreeImpl::DeleteWindowImpl(WindowTreeImpl* source, 502 bool WindowTreeImpl::DeleteWindowImpl(WindowTreeImpl* source,
504 ServerWindow* window) { 503 ServerWindow* window) {
505 DCHECK(window); 504 DCHECK(window);
506 DCHECK_EQ(window->id().connection_id, id_); 505 DCHECK_EQ(window->id().connection_id, id_);
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 return connection && connection != this; 1001 return connection && connection != this;
1003 } 1002 }
1004 1003
1005 bool WindowTreeImpl::IsDescendantOfEmbedRoot(const ServerWindow* window) { 1004 bool WindowTreeImpl::IsDescendantOfEmbedRoot(const ServerWindow* window) {
1006 return is_embed_root_ && root_ && GetWindow(*root_)->Contains(window); 1005 return is_embed_root_ && root_ && GetWindow(*root_)->Contains(window);
1007 } 1006 }
1008 1007
1009 } // namespace ws 1008 } // namespace ws
1010 1009
1011 } // namespace mus 1010 } // namespace mus
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698