OLD | NEW |
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/server_window.h" | 5 #include "components/mus/ws/server_window.h" |
6 | 6 |
7 #include <inttypes.h> | 7 #include <inttypes.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 | 23 |
24 ServerWindow::ServerWindow(ServerWindowDelegate* delegate, | 24 ServerWindow::ServerWindow(ServerWindowDelegate* delegate, |
25 const WindowId& id, | 25 const WindowId& id, |
26 const Properties& properties) | 26 const Properties& properties) |
27 : delegate_(delegate), | 27 : delegate_(delegate), |
28 id_(id), | 28 id_(id), |
29 parent_(nullptr), | 29 parent_(nullptr), |
30 stacking_target_(nullptr), | 30 stacking_target_(nullptr), |
31 transient_parent_(nullptr), | 31 transient_parent_(nullptr), |
32 visible_(false), | 32 visible_(false), |
33 cursor_id_(mojom::CURSOR_NULL), | 33 cursor_id_(mojom::Cursor::CURSOR_NULL), |
34 opacity_(1), | 34 opacity_(1), |
35 can_focus_(true), | 35 can_focus_(true), |
36 properties_(properties), | 36 properties_(properties), |
37 // Don't notify newly added observers during notification. This causes | 37 // Don't notify newly added observers during notification. This causes |
38 // problems for code that adds an observer as part of an observer | 38 // problems for code that adds an observer as part of an observer |
39 // notification (such as ServerWindowDrawTracker). | 39 // notification (such as ServerWindowDrawTracker). |
40 observers_( | 40 observers_( |
41 base::ObserverList<ServerWindowObserver>::NOTIFY_EXISTING_ONLY) { | 41 base::ObserverList<ServerWindowObserver>::NOTIFY_EXISTING_ONLY) { |
42 DCHECK(delegate); // Must provide a delegate. | 42 DCHECK(delegate); // Must provide a delegate. |
43 } | 43 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 } | 81 } |
82 | 82 |
83 void ServerWindow::Add(ServerWindow* child) { | 83 void ServerWindow::Add(ServerWindow* child) { |
84 // We assume validation checks happened already. | 84 // We assume validation checks happened already. |
85 DCHECK(child); | 85 DCHECK(child); |
86 DCHECK(child != this); | 86 DCHECK(child != this); |
87 DCHECK(!child->Contains(this)); | 87 DCHECK(!child->Contains(this)); |
88 if (child->parent() == this) { | 88 if (child->parent() == this) { |
89 if (children_.size() == 1) | 89 if (children_.size() == 1) |
90 return; // Already in the right position. | 90 return; // Already in the right position. |
91 child->Reorder(children_.back(), mojom::ORDER_DIRECTION_ABOVE); | 91 child->Reorder(children_.back(), mojom::OrderDirection::ABOVE); |
92 return; | 92 return; |
93 } | 93 } |
94 | 94 |
95 ServerWindow* old_parent = child->parent(); | 95 ServerWindow* old_parent = child->parent(); |
96 FOR_EACH_OBSERVER(ServerWindowObserver, child->observers_, | 96 FOR_EACH_OBSERVER(ServerWindowObserver, child->observers_, |
97 OnWillChangeWindowHierarchy(child, this, old_parent)); | 97 OnWillChangeWindowHierarchy(child, this, old_parent)); |
98 | 98 |
99 if (child->parent()) | 99 if (child->parent()) |
100 child->parent()->RemoveImpl(child); | 100 child->parent()->RemoveImpl(child); |
101 | 101 |
(...skipping 30 matching lines...) Expand all Loading... |
132 | 132 |
133 void ServerWindow::Reorder(ServerWindow* relative, | 133 void ServerWindow::Reorder(ServerWindow* relative, |
134 mojom::OrderDirection direction) { | 134 mojom::OrderDirection direction) { |
135 ReorderImpl(this, relative, direction); | 135 ReorderImpl(this, relative, direction); |
136 } | 136 } |
137 | 137 |
138 void ServerWindow::StackChildAtBottom(ServerWindow* child) { | 138 void ServerWindow::StackChildAtBottom(ServerWindow* child) { |
139 // There's nothing to do if the child is already at the bottom. | 139 // There's nothing to do if the child is already at the bottom. |
140 if (children_.size() <= 1 || child == children_.front()) | 140 if (children_.size() <= 1 || child == children_.front()) |
141 return; | 141 return; |
142 child->Reorder(children_.front(), mojom::ORDER_DIRECTION_BELOW); | 142 child->Reorder(children_.front(), mojom::OrderDirection::BELOW); |
143 } | 143 } |
144 | 144 |
145 void ServerWindow::StackChildAtTop(ServerWindow* child) { | 145 void ServerWindow::StackChildAtTop(ServerWindow* child) { |
146 // There's nothing to do if the child is already at the top. | 146 // There's nothing to do if the child is already at the top. |
147 if (children_.size() <= 1 || child == children_.back()) | 147 if (children_.size() <= 1 || child == children_.back()) |
148 return; | 148 return; |
149 child->Reorder(children_.back(), mojom::ORDER_DIRECTION_ABOVE); | 149 child->Reorder(children_.back(), mojom::OrderDirection::ABOVE); |
150 } | 150 } |
151 | 151 |
152 void ServerWindow::SetBounds(const gfx::Rect& bounds) { | 152 void ServerWindow::SetBounds(const gfx::Rect& bounds) { |
153 if (bounds_ == bounds) | 153 if (bounds_ == bounds) |
154 return; | 154 return; |
155 | 155 |
156 // TODO(fsamuel): figure out how will this work with CompositorFrames. | 156 // TODO(fsamuel): figure out how will this work with CompositorFrames. |
157 | 157 |
158 const gfx::Rect old_bounds = bounds_; | 158 const gfx::Rect old_bounds = bounds_; |
159 bounds_ = bounds; | 159 bounds_ = bounds; |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 | 402 |
403 if (!AdjustStackingForTransientWindows(&window, &relative, &direction, | 403 if (!AdjustStackingForTransientWindows(&window, &relative, &direction, |
404 window->stacking_target_)) | 404 window->stacking_target_)) |
405 return; | 405 return; |
406 | 406 |
407 window->parent_->children_.erase(std::find(window->parent_->children_.begin(), | 407 window->parent_->children_.erase(std::find(window->parent_->children_.begin(), |
408 window->parent_->children_.end(), | 408 window->parent_->children_.end(), |
409 window)); | 409 window)); |
410 Windows::iterator i = std::find(window->parent_->children_.begin(), | 410 Windows::iterator i = std::find(window->parent_->children_.begin(), |
411 window->parent_->children_.end(), relative); | 411 window->parent_->children_.end(), relative); |
412 if (direction == mojom::ORDER_DIRECTION_ABOVE) { | 412 if (direction == mojom::OrderDirection::ABOVE) { |
413 DCHECK(i != window->parent_->children_.end()); | 413 DCHECK(i != window->parent_->children_.end()); |
414 window->parent_->children_.insert(++i, window); | 414 window->parent_->children_.insert(++i, window); |
415 } else if (direction == mojom::ORDER_DIRECTION_BELOW) { | 415 } else if (direction == mojom::OrderDirection::BELOW) { |
416 DCHECK(i != window->parent_->children_.end()); | 416 DCHECK(i != window->parent_->children_.end()); |
417 window->parent_->children_.insert(i, window); | 417 window->parent_->children_.insert(i, window); |
418 } | 418 } |
419 FOR_EACH_OBSERVER(ServerWindowObserver, window->observers_, | 419 FOR_EACH_OBSERVER(ServerWindowObserver, window->observers_, |
420 OnWindowReordered(window, relative, direction)); | 420 OnWindowReordered(window, relative, direction)); |
421 window->OnStackingChanged(); | 421 window->OnStackingChanged(); |
422 } | 422 } |
423 | 423 |
424 // static | 424 // static |
425 ServerWindow** ServerWindow::GetStackingTarget(ServerWindow* window) { | 425 ServerWindow** ServerWindow::GetStackingTarget(ServerWindow* window) { |
426 return &window->stacking_target_; | 426 return &window->stacking_target_; |
427 } | 427 } |
428 | 428 |
429 } // namespace ws | 429 } // namespace ws |
430 | 430 |
431 } // namespace mus | 431 } // namespace mus |
OLD | NEW |