| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "ash/wm_window.h" | 5 #include "ash/wm_window.h" |
| 6 | 6 |
| 7 #include "ash/ash_constants.h" | 7 #include "ash/ash_constants.h" |
| 8 #include "ash/public/cpp/config.h" | 8 #include "ash/public/cpp/config.h" |
| 9 #include "ash/public/cpp/shell_window_ids.h" | 9 #include "ash/public/cpp/shell_window_ids.h" |
| 10 #include "ash/public/cpp/window_properties.h" | 10 #include "ash/public/cpp/window_properties.h" |
| (...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 } | 440 } |
| 441 | 441 |
| 442 void WmWindow::Hide() { | 442 void WmWindow::Hide() { |
| 443 window_->Hide(); | 443 window_->Hide(); |
| 444 } | 444 } |
| 445 | 445 |
| 446 void WmWindow::Show() { | 446 void WmWindow::Show() { |
| 447 window_->Show(); | 447 window_->Show(); |
| 448 } | 448 } |
| 449 | 449 |
| 450 void WmWindow::CloseWidget() { | |
| 451 if (Shell::GetAshConfig() == Config::MASH && | |
| 452 aura_window()->GetProperty(kWidgetCreationTypeKey) == | |
| 453 WidgetCreationType::FOR_CLIENT) { | |
| 454 // NOTE: in the FOR_CLIENT case there is not necessarily a widget associated | |
| 455 // with the window. Mash only creates widgets for top level windows if mash | |
| 456 // renders the non-client frame. | |
| 457 DCHECK(Shell::window_manager_client()); | |
| 458 Shell::window_manager_client()->RequestClose(aura_window()); | |
| 459 return; | |
| 460 } | |
| 461 views::Widget* widget = GetInternalWidgetForWindow(window_); | |
| 462 DCHECK(widget); | |
| 463 widget->Close(); | |
| 464 } | |
| 465 | |
| 466 void WmWindow::SetFocused() { | 450 void WmWindow::SetFocused() { |
| 467 aura::client::GetFocusClient(window_)->FocusWindow(window_); | 451 aura::client::GetFocusClient(window_)->FocusWindow(window_); |
| 468 } | 452 } |
| 469 | 453 |
| 470 bool WmWindow::IsFocused() const { | 454 bool WmWindow::IsFocused() const { |
| 471 return window_->HasFocus(); | 455 return window_->HasFocus(); |
| 472 } | 456 } |
| 473 | 457 |
| 474 bool WmWindow::IsActive() const { | 458 bool WmWindow::IsActive() const { |
| 475 return wm::IsActiveWindow(window_); | 459 return wm::IsActiveWindow(window_); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 558 void WmWindow::RemoveTransientWindowObserver( | 542 void WmWindow::RemoveTransientWindowObserver( |
| 559 WmTransientWindowObserver* observer) { | 543 WmTransientWindowObserver* observer) { |
| 560 transient_observers_.RemoveObserver(observer); | 544 transient_observers_.RemoveObserver(observer); |
| 561 if (added_transient_observer_ && | 545 if (added_transient_observer_ && |
| 562 !transient_observers_.might_have_observers()) { | 546 !transient_observers_.might_have_observers()) { |
| 563 added_transient_observer_ = false; | 547 added_transient_observer_ = false; |
| 564 ::wm::TransientWindowManager::Get(window_)->RemoveObserver(this); | 548 ::wm::TransientWindowManager::Get(window_)->RemoveObserver(this); |
| 565 } | 549 } |
| 566 } | 550 } |
| 567 | 551 |
| 568 void WmWindow::AddLimitedPreTargetHandler(ui::EventHandler* handler) { | |
| 569 // In mus AddPreTargetHandler() only works for windows created by this client. | |
| 570 DCHECK(Shell::GetAshConfig() != Config::MASH || | |
| 571 Shell::window_tree_client()->WasCreatedByThisClient( | |
| 572 aura::WindowMus::Get(window_))); | |
| 573 window_->AddPreTargetHandler(handler); | |
| 574 } | |
| 575 | |
| 576 void WmWindow::RemoveLimitedPreTargetHandler(ui::EventHandler* handler) { | |
| 577 window_->RemovePreTargetHandler(handler); | |
| 578 } | |
| 579 | |
| 580 WmWindow::WmWindow(aura::Window* window) : window_(window) { | 552 WmWindow::WmWindow(aura::Window* window) : window_(window) { |
| 581 window_->SetProperty(kWmWindowKey, this); | 553 window_->SetProperty(kWmWindowKey, this); |
| 582 } | 554 } |
| 583 | 555 |
| 584 void WmWindow::OnTransientChildAdded(aura::Window* window, | 556 void WmWindow::OnTransientChildAdded(aura::Window* window, |
| 585 aura::Window* transient) { | 557 aura::Window* transient) { |
| 586 for (auto& observer : transient_observers_) | 558 for (auto& observer : transient_observers_) |
| 587 observer.OnTransientChildAdded(this, Get(transient)); | 559 observer.OnTransientChildAdded(this, Get(transient)); |
| 588 } | 560 } |
| 589 | 561 |
| 590 void WmWindow::OnTransientChildRemoved(aura::Window* window, | 562 void WmWindow::OnTransientChildRemoved(aura::Window* window, |
| 591 aura::Window* transient) { | 563 aura::Window* transient) { |
| 592 for (auto& observer : transient_observers_) | 564 for (auto& observer : transient_observers_) |
| 593 observer.OnTransientChildRemoved(this, Get(transient)); | 565 observer.OnTransientChildRemoved(this, Get(transient)); |
| 594 } | 566 } |
| 595 | 567 |
| 596 } // namespace ash | 568 } // namespace ash |
| OLD | NEW |