| Index: components/mus/ws/server_window.cc
|
| diff --git a/components/mus/ws/server_window.cc b/components/mus/ws/server_window.cc
|
| index d64d10c77ca379a1486aa69e212fb87cb298e9dc..e1c7d2c8c4c9f6175f7ff870dabcf2959c31f954 100644
|
| --- a/components/mus/ws/server_window.cc
|
| +++ b/components/mus/ws/server_window.cc
|
| @@ -18,28 +18,6 @@ namespace mus {
|
|
|
| namespace ws {
|
|
|
| -namespace {
|
| -
|
| -const ServerWindow* GetModalChildForWindowAncestor(const ServerWindow* window) {
|
| - for (const ServerWindow* ancestor = window; ancestor;
|
| - ancestor = ancestor->parent()) {
|
| - for (const auto& transient_child : ancestor->transient_children()) {
|
| - if (transient_child->is_modal() && transient_child->IsDrawn())
|
| - return transient_child;
|
| - }
|
| - }
|
| - return nullptr;
|
| -}
|
| -
|
| -const ServerWindow* GetModalTargetForWindow(const ServerWindow* window) {
|
| - const ServerWindow* modal_window = GetModalChildForWindowAncestor(window);
|
| - if (!modal_window)
|
| - return window;
|
| - return GetModalTargetForWindow(modal_window);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| ServerWindow::ServerWindow(ServerWindowDelegate* delegate, const WindowId& id)
|
| : ServerWindow(delegate, id, Properties()) {}
|
|
|
| @@ -229,7 +207,11 @@ ServerWindow* ServerWindow::GetChildWindow(const WindowId& window_id) {
|
| return nullptr;
|
| }
|
|
|
| -void ServerWindow::AddTransientWindow(ServerWindow* child) {
|
| +bool ServerWindow::AddTransientWindow(ServerWindow* child) {
|
| + // A system modal window cannot become a transient child.
|
| + if (child->is_modal() && !child->transient_parent())
|
| + return false;
|
| +
|
| if (child->transient_parent())
|
| child->transient_parent()->RemoveTransientWindow(child);
|
|
|
| @@ -245,6 +227,7 @@ void ServerWindow::AddTransientWindow(ServerWindow* child) {
|
|
|
| FOR_EACH_OBSERVER(ServerWindowObserver, observers_,
|
| OnTransientWindowAdded(this, child));
|
| + return true;
|
| }
|
|
|
| void ServerWindow::RemoveTransientWindow(ServerWindow* child) {
|
| @@ -269,14 +252,6 @@ void ServerWindow::SetModal() {
|
| is_modal_ = true;
|
| }
|
|
|
| -bool ServerWindow::IsBlockedByModalWindow() const {
|
| - return !!GetModalChildForWindowAncestor(this);
|
| -}
|
| -
|
| -const ServerWindow* ServerWindow::GetModalTarget() const {
|
| - return GetModalTargetForWindow(this);
|
| -}
|
| -
|
| bool ServerWindow::Contains(const ServerWindow* window) const {
|
| for (const ServerWindow* parent = window; parent; parent = parent->parent_) {
|
| if (parent == this)
|
|
|