| Index: ash/wm_window.cc
|
| diff --git a/ash/wm_window.cc b/ash/wm_window.cc
|
| deleted file mode 100644
|
| index aea1e78b6a8e78458ab88749ef2bdc2fcc07881d..0000000000000000000000000000000000000000
|
| --- a/ash/wm_window.cc
|
| +++ /dev/null
|
| @@ -1,539 +0,0 @@
|
| -// Copyright 2016 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "ash/wm_window.h"
|
| -
|
| -#include "ash/ash_constants.h"
|
| -#include "ash/public/cpp/config.h"
|
| -#include "ash/public/cpp/shell_window_ids.h"
|
| -#include "ash/public/cpp/window_properties.h"
|
| -#include "ash/root_window_controller.h"
|
| -#include "ash/shell.h"
|
| -#include "ash/wm/resize_handle_window_targeter.h"
|
| -#include "ash/wm/widget_finder.h"
|
| -#include "ash/wm/window_animations.h"
|
| -#include "ash/wm/window_properties.h"
|
| -#include "ash/wm/window_state.h"
|
| -#include "ash/wm/window_util.h"
|
| -#include "ash/wm_transient_window_observer.h"
|
| -#include "base/memory/ptr_util.h"
|
| -#include "services/ui/public/interfaces/window_manager_constants.mojom.h"
|
| -#include "ui/aura/client/aura_constants.h"
|
| -#include "ui/aura/client/focus_client.h"
|
| -#include "ui/aura/client/window_parenting_client.h"
|
| -#include "ui/aura/layout_manager.h"
|
| -#include "ui/aura/mus/window_manager_delegate.h"
|
| -#include "ui/aura/mus/window_mus.h"
|
| -#include "ui/aura/mus/window_tree_client.h"
|
| -#include "ui/aura/window.h"
|
| -#include "ui/aura/window_delegate.h"
|
| -#include "ui/aura/window_observer.h"
|
| -#include "ui/base/class_property.h"
|
| -#include "ui/base/hit_test.h"
|
| -#include "ui/compositor/layer_tree_owner.h"
|
| -#include "ui/compositor/scoped_layer_animation_settings.h"
|
| -#include "ui/display/screen.h"
|
| -#include "ui/gfx/geometry/insets.h"
|
| -#include "ui/views/widget/widget.h"
|
| -#include "ui/views/widget/widget_delegate.h"
|
| -#include "ui/wm/core/coordinate_conversion.h"
|
| -#include "ui/wm/core/easy_resize_window_targeter.h"
|
| -#include "ui/wm/core/ime_util_chromeos.h"
|
| -#include "ui/wm/core/transient_window_manager.h"
|
| -#include "ui/wm/core/visibility_controller.h"
|
| -#include "ui/wm/core/window_util.h"
|
| -
|
| -DECLARE_UI_CLASS_PROPERTY_TYPE(ash::WmWindow*);
|
| -
|
| -namespace ash {
|
| -namespace {
|
| -DEFINE_OWNED_UI_CLASS_PROPERTY_KEY(WmWindow, kWmWindowKey, nullptr);
|
| -
|
| -static_assert(aura::Window::kInitialId == kShellWindowId_Invalid,
|
| - "ids must match");
|
| -
|
| -} // namespace
|
| -
|
| -WmWindow::~WmWindow() {
|
| - if (added_transient_observer_)
|
| - ::wm::TransientWindowManager::Get(window_)->RemoveObserver(this);
|
| -}
|
| -
|
| -// static
|
| -const WmWindow* WmWindow::Get(const aura::Window* window) {
|
| - if (!window)
|
| - return nullptr;
|
| -
|
| - const WmWindow* wm_window = window->GetProperty(kWmWindowKey);
|
| - if (wm_window)
|
| - return wm_window;
|
| - // WmWindow is owned by the aura::Window.
|
| - // TODO(sky): fix constness.
|
| - return new WmWindow(const_cast<aura::Window*>(window));
|
| -}
|
| -
|
| -// static
|
| -std::vector<WmWindow*> WmWindow::FromAuraWindows(
|
| - const std::vector<aura::Window*>& aura_windows) {
|
| - std::vector<WmWindow*> result(aura_windows.size());
|
| - for (size_t i = 0; i < aura_windows.size(); ++i)
|
| - result[i] = Get(aura_windows[i]);
|
| - return result;
|
| -}
|
| -
|
| -// static
|
| -std::vector<aura::Window*> WmWindow::ToAuraWindows(
|
| - const std::vector<WmWindow*>& windows) {
|
| - std::vector<aura::Window*> result(windows.size());
|
| - for (size_t i = 0; i < windows.size(); ++i)
|
| - result[i] = WmWindow::GetAuraWindow(windows[i]);
|
| - return result;
|
| -}
|
| -
|
| -// static
|
| -const aura::Window* WmWindow::GetAuraWindow(const WmWindow* wm_window) {
|
| - return wm_window ? static_cast<const WmWindow*>(wm_window)->aura_window()
|
| - : nullptr;
|
| -}
|
| -
|
| -void WmWindow::Destroy() {
|
| - delete window_;
|
| - // WARNING: this has been deleted.
|
| -}
|
| -
|
| -const WmWindow* WmWindow::GetRootWindow() const {
|
| - return Get(window_->GetRootWindow());
|
| -}
|
| -
|
| -RootWindowController* WmWindow::GetRootWindowController() {
|
| - aura::Window* root = window_->GetRootWindow();
|
| - return root ? RootWindowController::ForWindow(root) : nullptr;
|
| -}
|
| -
|
| -aura::client::WindowType WmWindow::GetType() const {
|
| - return window_->type();
|
| -}
|
| -
|
| -int WmWindow::GetAppType() const {
|
| - return window_->GetProperty(aura::client::kAppType);
|
| -}
|
| -
|
| -void WmWindow::SetAppType(int app_type) const {
|
| - window_->SetProperty(aura::client::kAppType, app_type);
|
| -}
|
| -
|
| -ui::Layer* WmWindow::GetLayer() {
|
| - return window_->layer();
|
| -}
|
| -
|
| -bool WmWindow::GetLayerTargetVisibility() {
|
| - return GetLayer()->GetTargetVisibility();
|
| -}
|
| -
|
| -bool WmWindow::GetLayerVisible() {
|
| - return GetLayer()->visible();
|
| -}
|
| -
|
| -display::Display WmWindow::GetDisplayNearestWindow() {
|
| - return display::Screen::GetScreen()->GetDisplayNearestWindow(window_);
|
| -}
|
| -
|
| -bool WmWindow::HasNonClientArea() {
|
| - return window_->delegate() ? true : false;
|
| -}
|
| -
|
| -int WmWindow::GetNonClientComponent(const gfx::Point& location) {
|
| - return wm::GetNonClientComponent(window_, location);
|
| -}
|
| -
|
| -gfx::Point WmWindow::ConvertPointToTarget(const WmWindow* target,
|
| - const gfx::Point& point) const {
|
| - gfx::Point result(point);
|
| - aura::Window::ConvertPointToTarget(window_, GetAuraWindow(target), &result);
|
| - return result;
|
| -}
|
| -
|
| -gfx::Point WmWindow::ConvertPointToScreen(const gfx::Point& point) const {
|
| - gfx::Point result(point);
|
| - ::wm::ConvertPointToScreen(window_, &result);
|
| - return result;
|
| -}
|
| -
|
| -gfx::Point WmWindow::ConvertPointFromScreen(const gfx::Point& point) const {
|
| - gfx::Point result(point);
|
| - ::wm::ConvertPointFromScreen(window_, &result);
|
| - return result;
|
| -}
|
| -
|
| -gfx::Rect WmWindow::ConvertRectToScreen(const gfx::Rect& rect) const {
|
| - gfx::Rect result(rect);
|
| - ::wm::ConvertRectToScreen(window_, &result);
|
| - return result;
|
| -}
|
| -
|
| -gfx::Rect WmWindow::ConvertRectFromScreen(const gfx::Rect& rect) const {
|
| - gfx::Rect result(rect);
|
| - ::wm::ConvertRectFromScreen(window_, &result);
|
| - return result;
|
| -}
|
| -
|
| -gfx::Size WmWindow::GetMinimumSize() const {
|
| - return window_->delegate() ? window_->delegate()->GetMinimumSize()
|
| - : gfx::Size();
|
| -}
|
| -
|
| -gfx::Size WmWindow::GetMaximumSize() const {
|
| - return window_->delegate() ? window_->delegate()->GetMaximumSize()
|
| - : gfx::Size();
|
| -}
|
| -
|
| -bool WmWindow::GetTargetVisibility() const {
|
| - return window_->TargetVisibility();
|
| -}
|
| -
|
| -bool WmWindow::IsVisible() const {
|
| - return window_->IsVisible();
|
| -}
|
| -
|
| -void WmWindow::SetOpacity(float opacity) {
|
| - window_->layer()->SetOpacity(opacity);
|
| -}
|
| -
|
| -float WmWindow::GetTargetOpacity() const {
|
| - return window_->layer()->GetTargetOpacity();
|
| -}
|
| -
|
| -gfx::Rect WmWindow::GetMinimizeAnimationTargetBoundsInScreen() const {
|
| - return ash::GetMinimizeAnimationTargetBoundsInScreen(window_);
|
| -}
|
| -
|
| -void WmWindow::SetTransform(const gfx::Transform& transform) {
|
| - window_->SetTransform(transform);
|
| -}
|
| -
|
| -gfx::Transform WmWindow::GetTargetTransform() const {
|
| - return window_->layer()->GetTargetTransform();
|
| -}
|
| -
|
| -bool WmWindow::IsSystemModal() const {
|
| - return window_->GetProperty(aura::client::kModalKey) == ui::MODAL_TYPE_SYSTEM;
|
| -}
|
| -
|
| -const wm::WindowState* WmWindow::GetWindowState() const {
|
| - return ash::wm::GetWindowState(window_);
|
| -}
|
| -
|
| -WmWindow* WmWindow::GetToplevelWindow() {
|
| - return Get(window_->GetToplevelWindow());
|
| -}
|
| -
|
| -WmWindow* WmWindow::GetToplevelWindowForFocus() {
|
| - return Get(::wm::GetToplevelWindow(window_));
|
| -}
|
| -
|
| -void WmWindow::SetParentUsingContext(WmWindow* context,
|
| - const gfx::Rect& screen_bounds) {
|
| - aura::client::ParentWindowWithContext(window_, GetAuraWindow(context),
|
| - screen_bounds);
|
| -}
|
| -
|
| -void WmWindow::AddChild(WmWindow* window) {
|
| - window_->AddChild(GetAuraWindow(window));
|
| -}
|
| -
|
| -void WmWindow::RemoveChild(WmWindow* child) {
|
| - window_->RemoveChild(GetAuraWindow(child));
|
| -}
|
| -
|
| -const WmWindow* WmWindow::GetParent() const {
|
| - return Get(window_->parent());
|
| -}
|
| -
|
| -const WmWindow* WmWindow::GetTransientParent() const {
|
| - return Get(::wm::GetTransientParent(window_));
|
| -}
|
| -
|
| -std::vector<WmWindow*> WmWindow::GetTransientChildren() {
|
| - return FromAuraWindows(::wm::GetTransientChildren(window_));
|
| -}
|
| -
|
| -bool WmWindow::MoveToEventRoot(const ui::Event& event) {
|
| - return ash::wm::MoveWindowToEventRoot(window_, event);
|
| -}
|
| -
|
| -void WmWindow::SetVisibilityChangesAnimated() {
|
| - ::wm::SetWindowVisibilityChangesAnimated(window_);
|
| -}
|
| -
|
| -void WmWindow::SetVisibilityAnimationType(int type) {
|
| - ::wm::SetWindowVisibilityAnimationType(window_, type);
|
| -}
|
| -
|
| -void WmWindow::SetVisibilityAnimationDuration(base::TimeDelta delta) {
|
| - ::wm::SetWindowVisibilityAnimationDuration(window_, delta);
|
| -}
|
| -
|
| -void WmWindow::SetVisibilityAnimationTransition(
|
| - ::wm::WindowVisibilityAnimationTransition transition) {
|
| - ::wm::SetWindowVisibilityAnimationTransition(window_, transition);
|
| -}
|
| -
|
| -void WmWindow::Animate(::wm::WindowAnimationType type) {
|
| - ::wm::AnimateWindow(window_, type);
|
| -}
|
| -
|
| -void WmWindow::StopAnimatingProperty(
|
| - ui::LayerAnimationElement::AnimatableProperty property) {
|
| - window_->layer()->GetAnimator()->StopAnimatingProperty(property);
|
| -}
|
| -
|
| -void WmWindow::SetChildWindowVisibilityChangesAnimated() {
|
| - ::wm::SetChildWindowVisibilityChangesAnimated(window_);
|
| -}
|
| -
|
| -void WmWindow::SetMasksToBounds(bool value) {
|
| - window_->layer()->SetMasksToBounds(value);
|
| -}
|
| -
|
| -void WmWindow::SetBounds(const gfx::Rect& bounds) {
|
| - window_->SetBounds(bounds);
|
| -}
|
| -
|
| -void WmWindow::SetBoundsWithTransitionDelay(const gfx::Rect& bounds,
|
| - base::TimeDelta delta) {
|
| - if (::wm::WindowAnimationsDisabled(window_)) {
|
| - window_->SetBounds(bounds);
|
| - return;
|
| - }
|
| -
|
| - ui::ScopedLayerAnimationSettings settings(window_->layer()->GetAnimator());
|
| - settings.SetTransitionDuration(delta);
|
| - window_->SetBounds(bounds);
|
| -}
|
| -
|
| -void WmWindow::SetBoundsInScreen(const gfx::Rect& bounds_in_screen,
|
| - const display::Display& dst_display) {
|
| - window_->SetBoundsInScreen(bounds_in_screen, dst_display);
|
| -}
|
| -
|
| -gfx::Rect WmWindow::GetBoundsInScreen() const {
|
| - return window_->GetBoundsInScreen();
|
| -}
|
| -
|
| -const gfx::Rect& WmWindow::GetBounds() const {
|
| - return window_->bounds();
|
| -}
|
| -
|
| -gfx::Rect WmWindow::GetTargetBounds() {
|
| - return window_->GetTargetBounds();
|
| -}
|
| -
|
| -void WmWindow::ClearRestoreBounds() {
|
| - window_->ClearProperty(aura::client::kRestoreBoundsKey);
|
| - window_->ClearProperty(::wm::kVirtualKeyboardRestoreBoundsKey);
|
| -}
|
| -
|
| -void WmWindow::SetRestoreBoundsInScreen(const gfx::Rect& bounds) {
|
| - window_->SetProperty(aura::client::kRestoreBoundsKey, new gfx::Rect(bounds));
|
| -}
|
| -
|
| -gfx::Rect WmWindow::GetRestoreBoundsInScreen() const {
|
| - gfx::Rect* bounds = window_->GetProperty(aura::client::kRestoreBoundsKey);
|
| - return bounds ? *bounds : gfx::Rect();
|
| -}
|
| -
|
| -bool WmWindow::Contains(const WmWindow* other) const {
|
| - return other ? window_->Contains(static_cast<const WmWindow*>(other)->window_)
|
| - : false;
|
| -}
|
| -
|
| -void WmWindow::SetShowState(ui::WindowShowState show_state) {
|
| - window_->SetProperty(aura::client::kShowStateKey, show_state);
|
| -}
|
| -
|
| -ui::WindowShowState WmWindow::GetShowState() const {
|
| - return window_->GetProperty(aura::client::kShowStateKey);
|
| -}
|
| -
|
| -void WmWindow::SetPreFullscreenShowState(ui::WindowShowState show_state) {
|
| - // We should never store the ui::SHOW_STATE_MINIMIZED as the show state before
|
| - // fullscreen.
|
| - DCHECK_NE(show_state, ui::SHOW_STATE_MINIMIZED);
|
| - window_->SetProperty(aura::client::kPreFullscreenShowStateKey, show_state);
|
| -}
|
| -
|
| -void WmWindow::SetLockedToRoot(bool value) {
|
| - window_->SetProperty(kLockedToRootKey, value);
|
| -}
|
| -
|
| -bool WmWindow::IsLockedToRoot() const {
|
| - return window_->GetProperty(kLockedToRootKey);
|
| -}
|
| -
|
| -void WmWindow::SetCapture() {
|
| - window_->SetCapture();
|
| -}
|
| -
|
| -bool WmWindow::HasCapture() {
|
| - return window_->HasCapture();
|
| -}
|
| -
|
| -void WmWindow::ReleaseCapture() {
|
| - window_->ReleaseCapture();
|
| -}
|
| -
|
| -bool WmWindow::HasRestoreBounds() const {
|
| - return window_->GetProperty(aura::client::kRestoreBoundsKey) != nullptr;
|
| -}
|
| -
|
| -bool WmWindow::CanMaximize() const {
|
| - return (window_->GetProperty(aura::client::kResizeBehaviorKey) &
|
| - ui::mojom::kResizeBehaviorCanMaximize) != 0;
|
| -}
|
| -
|
| -bool WmWindow::CanMinimize() const {
|
| - return (window_->GetProperty(aura::client::kResizeBehaviorKey) &
|
| - ui::mojom::kResizeBehaviorCanMinimize) != 0;
|
| -}
|
| -
|
| -bool WmWindow::CanResize() const {
|
| - return (window_->GetProperty(aura::client::kResizeBehaviorKey) &
|
| - ui::mojom::kResizeBehaviorCanResize) != 0;
|
| -}
|
| -
|
| -bool WmWindow::CanActivate() const {
|
| - // TODO(sky): for aura-mus need to key off CanFocus() as well, which is not
|
| - // currently mirrored to ash.
|
| - return ::wm::CanActivateWindow(window_);
|
| -}
|
| -
|
| -void WmWindow::StackChildAtTop(WmWindow* child) {
|
| - window_->StackChildAtTop(GetAuraWindow(child));
|
| -}
|
| -
|
| -void WmWindow::StackChildAtBottom(WmWindow* child) {
|
| - window_->StackChildAtBottom(GetAuraWindow(child));
|
| -}
|
| -
|
| -void WmWindow::StackChildAbove(WmWindow* child, WmWindow* target) {
|
| - window_->StackChildAbove(GetAuraWindow(child), GetAuraWindow(target));
|
| -}
|
| -
|
| -void WmWindow::StackChildBelow(WmWindow* child, WmWindow* target) {
|
| - window_->StackChildBelow(GetAuraWindow(child), GetAuraWindow(target));
|
| -}
|
| -
|
| -void WmWindow::SetAlwaysOnTop(bool value) {
|
| - window_->SetProperty(aura::client::kAlwaysOnTopKey, value);
|
| -}
|
| -
|
| -bool WmWindow::IsAlwaysOnTop() const {
|
| - return window_->GetProperty(aura::client::kAlwaysOnTopKey);
|
| -}
|
| -
|
| -void WmWindow::Hide() {
|
| - window_->Hide();
|
| -}
|
| -
|
| -void WmWindow::Show() {
|
| - window_->Show();
|
| -}
|
| -
|
| -void WmWindow::SetFocused() {
|
| - aura::client::GetFocusClient(window_)->FocusWindow(window_);
|
| -}
|
| -
|
| -bool WmWindow::IsFocused() const {
|
| - return window_->HasFocus();
|
| -}
|
| -
|
| -bool WmWindow::IsActive() const {
|
| - return wm::IsActiveWindow(window_);
|
| -}
|
| -
|
| -void WmWindow::Activate() {
|
| - wm::ActivateWindow(window_);
|
| -}
|
| -
|
| -void WmWindow::Deactivate() {
|
| - wm::DeactivateWindow(window_);
|
| -}
|
| -
|
| -void WmWindow::SetFullscreen(bool fullscreen) {
|
| - ::wm::SetWindowFullscreen(window_, fullscreen);
|
| -}
|
| -
|
| -void WmWindow::Maximize() {
|
| - window_->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
|
| -}
|
| -
|
| -void WmWindow::Minimize() {
|
| - window_->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED);
|
| -}
|
| -
|
| -void WmWindow::Unminimize() {
|
| - window_->SetProperty(
|
| - aura::client::kShowStateKey,
|
| - window_->GetProperty(aura::client::kPreMinimizedShowStateKey));
|
| - window_->ClearProperty(aura::client::kPreMinimizedShowStateKey);
|
| -}
|
| -
|
| -std::vector<WmWindow*> WmWindow::GetChildren() {
|
| - return FromAuraWindows(window_->children());
|
| -}
|
| -
|
| -WmWindow* WmWindow::GetChildByShellWindowId(int id) {
|
| - return Get(window_->GetChildById(id));
|
| -}
|
| -
|
| -void WmWindow::SetBoundsInScreenBehaviorForChildren(
|
| - BoundsInScreenBehavior behavior) {
|
| - window_->SetProperty(
|
| - kUsesScreenCoordinatesKey,
|
| - behavior == BoundsInScreenBehavior::USE_SCREEN_COORDINATES);
|
| -}
|
| -
|
| -void WmWindow::SetSnapsChildrenToPhysicalPixelBoundary() {
|
| - wm::SetSnapsChildrenToPhysicalPixelBoundary(window_);
|
| -}
|
| -
|
| -void WmWindow::SnapToPixelBoundaryIfNecessary() {
|
| - wm::SnapWindowToPixelBoundary(window_);
|
| -}
|
| -
|
| -void WmWindow::AddTransientWindowObserver(WmTransientWindowObserver* observer) {
|
| - if (!added_transient_observer_) {
|
| - added_transient_observer_ = true;
|
| - ::wm::TransientWindowManager::Get(window_)->AddObserver(this);
|
| - }
|
| - transient_observers_.AddObserver(observer);
|
| -}
|
| -
|
| -void WmWindow::RemoveTransientWindowObserver(
|
| - WmTransientWindowObserver* observer) {
|
| - transient_observers_.RemoveObserver(observer);
|
| - if (added_transient_observer_ &&
|
| - !transient_observers_.might_have_observers()) {
|
| - added_transient_observer_ = false;
|
| - ::wm::TransientWindowManager::Get(window_)->RemoveObserver(this);
|
| - }
|
| -}
|
| -
|
| -WmWindow::WmWindow(aura::Window* window) : window_(window) {
|
| - window_->SetProperty(kWmWindowKey, this);
|
| -}
|
| -
|
| -void WmWindow::OnTransientChildAdded(aura::Window* window,
|
| - aura::Window* transient) {
|
| - for (auto& observer : transient_observers_)
|
| - observer.OnTransientChildAdded(this, Get(transient));
|
| -}
|
| -
|
| -void WmWindow::OnTransientChildRemoved(aura::Window* window,
|
| - aura::Window* transient) {
|
| - for (auto& observer : transient_observers_)
|
| - observer.OnTransientChildRemoved(this, Get(transient));
|
| -}
|
| -
|
| -} // namespace ash
|
|
|