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

Unified Diff: ash/mus/bridge/wm_window_mus.cc

Issue 2539363005: Converts ash to use aura-mus (Closed)
Patch Set: merge Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: ash/mus/bridge/wm_window_mus.cc
diff --git a/ash/mus/bridge/wm_window_mus.cc b/ash/mus/bridge/wm_window_mus.cc
index b6cba40d070d83e9cea16b53d016f61c72423d29..607631ec8d1ff40b983a31b5488e2d6a712abe98 100644
--- a/ash/mus/bridge/wm_window_mus.cc
+++ b/ash/mus/bridge/wm_window_mus.cc
@@ -17,12 +17,14 @@
#include "ash/mus/bridge/wm_root_window_controller_mus.h"
#include "ash/mus/bridge/wm_shell_mus.h"
#include "ash/mus/property_util.h"
-#include "services/ui/public/cpp/property_type_converters.h"
-#include "services/ui/public/cpp/window.h"
-#include "services/ui/public/cpp/window_property.h"
-#include "services/ui/public/cpp/window_tree_client.h"
+#include "ash/mus/window_manager.h"
+#include "ash/public/cpp/shell_window_ids.h"
+#include "ash/wm/window_properties.h"
#include "services/ui/public/interfaces/window_manager.mojom.h"
-#include "ui/aura/mus/mus_util.h"
+#include "ui/aura/client/aura_constants.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/base/hit_test.h"
#include "ui/display/display.h"
@@ -31,141 +33,58 @@
#include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_delegate.h"
-MUS_DECLARE_WINDOW_PROPERTY_TYPE(ash::mus::WmWindowMus*);
-
-namespace {
-
-MUS_DEFINE_OWNED_WINDOW_PROPERTY_KEY(ash::mus::WmWindowMus,
- kWmWindowKey,
- nullptr);
-
-} // namespace
-
namespace ash {
namespace mus {
-namespace {
-
-// This class is used so that the WindowState constructor can be made protected.
James Cook 2016/12/05 17:21:48 Nice to see funky little things like this going aw
-// GetWindowState() is the only place that should be creating WindowState.
-class WindowStateMus : public wm::WindowState {
- public:
- explicit WindowStateMus(WmWindow* window) : wm::WindowState(window) {}
- ~WindowStateMus() override {}
-
- private:
- DISALLOW_COPY_AND_ASSIGN(WindowStateMus);
-};
-
-ui::WindowShowState UIWindowShowStateFromMojom(ui::mojom::ShowState state) {
- switch (state) {
- case ui::mojom::ShowState::DEFAULT:
- return ui::SHOW_STATE_DEFAULT;
- case ui::mojom::ShowState::NORMAL:
- return ui::SHOW_STATE_NORMAL;
- case ui::mojom::ShowState::MINIMIZED:
- return ui::SHOW_STATE_MINIMIZED;
- case ui::mojom::ShowState::MAXIMIZED:
- return ui::SHOW_STATE_MAXIMIZED;
- case ui::mojom::ShowState::INACTIVE:
- return ui::SHOW_STATE_INACTIVE;
- case ui::mojom::ShowState::FULLSCREEN:
- return ui::SHOW_STATE_FULLSCREEN;
- case ui::mojom::ShowState::DOCKED:
- return ui::SHOW_STATE_DOCKED;
- default:
- break;
- }
- return ui::SHOW_STATE_DEFAULT;
-}
-
-ui::mojom::ShowState MojomWindowShowStateFromUI(ui::WindowShowState state) {
- switch (state) {
- case ui::SHOW_STATE_DEFAULT:
- return ui::mojom::ShowState::DEFAULT;
- case ui::SHOW_STATE_NORMAL:
- return ui::mojom::ShowState::NORMAL;
- case ui::SHOW_STATE_MINIMIZED:
- return ui::mojom::ShowState::MINIMIZED;
- case ui::SHOW_STATE_MAXIMIZED:
- return ui::mojom::ShowState::MAXIMIZED;
- case ui::SHOW_STATE_INACTIVE:
- return ui::mojom::ShowState::INACTIVE;
- case ui::SHOW_STATE_FULLSCREEN:
- return ui::mojom::ShowState::FULLSCREEN;
- case ui::SHOW_STATE_DOCKED:
- return ui::mojom::ShowState::DOCKED;
- default:
- break;
- }
- return ui::mojom::ShowState::DEFAULT;
-}
-
-// Returns the WmWindowProperty enum value for the given ui::Window key name.
-WmWindowProperty WmWindowPropertyFromUI(const std::string& ui_window_key) {
- if (ui_window_key == ui::mojom::WindowManager::kAlwaysOnTop_Property)
- return WmWindowProperty::ALWAYS_ON_TOP;
- if (ui_window_key == ui::mojom::WindowManager::kExcludeFromMru_Property)
- return WmWindowProperty::EXCLUDE_FROM_MRU;
- if (ui_window_key == ui::mojom::WindowManager::kShelfItemType_Property)
- return WmWindowProperty::SHELF_ITEM_TYPE;
- return WmWindowProperty::INVALID_PROPERTY;
-}
+// static
+bool WmWindowMus::default_use_empty_minimum_size_for_testing_ = false;
-} // namespace
+WmWindowMus::WmWindowMus(aura::Window* window)
+ : WmWindowAura(window),
+ use_empty_minimum_size_for_testing_(
+ default_use_empty_minimum_size_for_testing_) {}
-WmWindowMus::WmWindowMus(ui::Window* window)
- : window_(window),
- // Matches aura, see aura::Window for details.
- observers_(base::ObserverList<WmWindowObserver>::NOTIFY_EXISTING_ONLY) {
- window_->AddObserver(this);
- window_->SetLocalProperty(kWmWindowKey, this);
- window_state_.reset(new WindowStateMus(this));
-}
-
-WmWindowMus::~WmWindowMus() {
- window_->RemoveObserver(this);
-}
+WmWindowMus::~WmWindowMus() {}
// static
-const WmWindowMus* WmWindowMus::Get(const ui::Window* window) {
+const WmWindowMus* WmWindowMus::Get(const aura::Window* window) {
if (!window)
return nullptr;
- const WmWindowMus* wm_window = window->GetLocalProperty(kWmWindowKey);
- if (wm_window)
- return wm_window;
- // WmWindowMus is owned by the ui::Window.
+ if (HasInstance(window))
+ return static_cast<const WmWindowMus*>(WmWindowAura::Get(window));
+
+ // WmWindowMus is owned by the aura::Window.
// Unfortunately there isn't a good way to avoid the cast here.
- return new WmWindowMus(const_cast<ui::Window*>(window));
+ return new WmWindowMus(const_cast<aura::Window*>(window));
}
// static
WmWindowMus* WmWindowMus::Get(views::Widget* widget) {
- return WmWindowMus::Get(aura::GetMusWindow(widget->GetNativeView()));
+ return WmWindowMus::Get(widget->GetNativeView());
}
// static
-const ui::Window* WmWindowMus::GetMusWindow(const WmWindow* wm_window) {
- return static_cast<const WmWindowMus*>(wm_window)->mus_window();
+const aura::Window* WmWindowMus::GetAuraWindow(const WmWindow* window) {
+ return static_cast<const WmWindowMus*>(window)->aura_window();
}
// static
-std::vector<WmWindow*> WmWindowMus::FromMusWindows(
- const std::vector<ui::Window*>& mus_windows) {
- std::vector<WmWindow*> result(mus_windows.size());
- for (size_t i = 0; i < mus_windows.size(); ++i)
- result[i] = Get(mus_windows[i]);
+std::vector<WmWindow*> WmWindowMus::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;
}
const WmRootWindowControllerMus* WmWindowMus::GetRootWindowControllerMus()
const {
- return WmRootWindowControllerMus::Get(window_->GetRoot());
+ return WmRootWindowControllerMus::Get(aura_window()->GetRootWindow());
}
bool WmWindowMus::ShouldUseExtendedHitRegion() const {
- const WmWindowMus* parent = Get(window_->parent());
+ const WmWindowMus* parent = Get(aura_window()->parent());
return parent && parent->children_use_extended_hit_region_;
}
@@ -173,15 +92,8 @@ bool WmWindowMus::IsContainer() const {
return GetShellWindowId() != kShellWindowId_Invalid;
}
-void WmWindowMus::Destroy() {
James Cook 2016/12/05 19:21:44 Q: Does getting rid of this mean we can get rid of
- // TODO(sky): to match aura behavior this should delete children.
- // http://crbug.com/647513.
- window_->Destroy();
- // WARNING: this has been deleted.
-}
-
const WmWindow* WmWindowMus::GetRootWindow() const {
- return Get(window_->GetRoot());
+ return Get(aura_window()->GetRootWindow());
}
WmRootWindowController* WmWindowMus::GetRootWindowController() {
@@ -192,82 +104,9 @@ WmShell* WmWindowMus::GetShell() const {
return WmShellMus::Get();
}
-void WmWindowMus::SetName(const char* name) {
- if (name) {
- window_->SetSharedProperty<std::string>(
- ui::mojom::WindowManager::kName_Property, std::string(name));
- } else {
- window_->ClearSharedProperty(ui::mojom::WindowManager::kName_Property);
- }
-}
-
-std::string WmWindowMus::GetName() const {
- return window_->HasSharedProperty(ui::mojom::WindowManager::kName_Property)
- ? window_->GetSharedProperty<std::string>(
- ui::mojom::WindowManager::kName_Property)
- : std::string();
-}
-
-void WmWindowMus::SetTitle(const base::string16& title) {
- SetWindowTitle(window_, title);
-}
-
-base::string16 WmWindowMus::GetTitle() const {
- return GetWindowTitle(window_);
-}
-
-void WmWindowMus::SetShellWindowId(int id) {
- shell_window_id_ = id;
-}
-
-int WmWindowMus::GetShellWindowId() const {
- return shell_window_id_;
-}
-
-ui::wm::WindowType WmWindowMus::GetType() const {
- // If the WindowType was expicitly set, then it means |window_| was created
- // by way of WmShellMus::NewWindow() and the type is locally defined. For
- // windows created in other ways, say from the client, then we need to get
- // the type from |window_| directly.
- return is_wm_window_type_set_ ? wm_window_type_ : GetWmWindowType(window_);
-}
-
-int WmWindowMus::GetAppType() const {
- // TODO: Need support for window property kAppType: http://crbug.com/651206.
- NOTIMPLEMENTED();
- return 0;
-}
-
-void WmWindowMus::SetAppType(int app_type) const {
- // TODO: Need support for window property kAppType: http://crbug.com/651206.
- NOTIMPLEMENTED();
-}
-
bool WmWindowMus::IsBubble() {
- return GetWindowType(window_) == ui::mojom::WindowType::BUBBLE;
-}
-
-ui::Layer* WmWindowMus::GetLayer() {
- // TODO: http://crbug.com/652877.
- NOTIMPLEMENTED();
- return widget_ ? widget_->GetLayer() : nullptr;
-}
-
-bool WmWindowMus::GetLayerTargetVisibility() {
- // TODO: http://crbug.com/652877.
- NOTIMPLEMENTED();
- return GetTargetVisibility();
-}
-
-bool WmWindowMus::GetLayerVisible() {
- // TODO: http://crbug.com/652877.
- NOTIMPLEMENTED();
- return IsVisible();
-}
-
-display::Display WmWindowMus::GetDisplayNearestWindow() {
- // TODO(sky): deal with null rwc.
- return GetRootWindowControllerMus()->GetDisplay();
+ return aura_window()->GetProperty(aura::client::kWindowTypeKey) ==
+ ui::mojom::WindowType::BUBBLE;
}
bool WmWindowMus::HasNonClientArea() {
@@ -278,48 +117,6 @@ int WmWindowMus::GetNonClientComponent(const gfx::Point& location) {
return widget_ ? widget_->GetNonClientComponent(location) : HTNOWHERE;
}
-gfx::Point WmWindowMus::ConvertPointToTarget(const WmWindow* target,
- const gfx::Point& point) const {
- const ui::Window* target_window = GetMusWindow(target);
- if (target_window->Contains(window_)) {
- gfx::Point result(point);
- const ui::Window* window = window_;
- while (window != target_window) {
- result += window->bounds().origin().OffsetFromOrigin();
- window = window->parent();
- }
- return result;
- }
- if (window_->Contains(target_window)) {
- gfx::Point result(point);
- result -=
- target->ConvertPointToTarget(this, gfx::Point()).OffsetFromOrigin();
- return result;
- }
- // Different roots.
- gfx::Point point_in_screen =
- GetRootWindowControllerMus()->ConvertPointToScreen(this, point);
- return AsWmWindowMus(target)
- ->GetRootWindowControllerMus()
- ->ConvertPointFromScreen(AsWmWindowMus(target), point_in_screen);
-}
-
-gfx::Point WmWindowMus::ConvertPointToScreen(const gfx::Point& point) const {
- return GetRootWindowControllerMus()->ConvertPointToScreen(this, point);
-}
-
-gfx::Point WmWindowMus::ConvertPointFromScreen(const gfx::Point& point) const {
- return GetRootWindowControllerMus()->ConvertPointFromScreen(this, point);
-}
-
-gfx::Rect WmWindowMus::ConvertRectToScreen(const gfx::Rect& rect) const {
- return gfx::Rect(ConvertPointToScreen(rect.origin()), rect.size());
-}
-
-gfx::Rect WmWindowMus::ConvertRectFromScreen(const gfx::Rect& rect) const {
- return gfx::Rect(ConvertPointFromScreen(rect.origin()), rect.size());
-}
-
gfx::Size WmWindowMus::GetMinimumSize() const {
James Cook 2016/12/05 19:21:44 Q: Will methods like this eventually be replaced w
sky 2016/12/05 21:39:19 I would lump this with the bug I filed about figur
James Cook 2016/12/05 22:56:34 I suggest sticking a README file in this directory
sky 2016/12/06 00:56:16 Done.
return widget_ && !use_empty_minimum_size_for_testing_
? widget_->GetMinimumSize()
@@ -330,41 +127,12 @@ gfx::Size WmWindowMus::GetMaximumSize() const {
return widget_ ? widget_->GetMaximumSize() : gfx::Size();
}
-bool WmWindowMus::GetTargetVisibility() const {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
- return window_->visible();
-}
-
-bool WmWindowMus::IsVisible() const {
- return window_->visible();
-}
-
-void WmWindowMus::SetOpacity(float opacity) {
- window_->SetOpacity(opacity);
-}
-
-float WmWindowMus::GetTargetOpacity() const {
- // TODO: need animation support: http://crbug.com/615087.
- return window_->opacity();
-}
-
gfx::Rect WmWindowMus::GetMinimizeAnimationTargetBoundsInScreen() const {
// TODO: need animation support: http://crbug.com/615087.
NOTIMPLEMENTED();
return GetBoundsInScreen();
}
-void WmWindowMus::SetTransform(const gfx::Transform& transform) {
- // TODO: mus needs to support transforms: http://crbug.com/615089.
- NOTIMPLEMENTED();
-}
-
-gfx::Transform WmWindowMus::GetTargetTransform() const {
- // TODO: need animation support: http://crbug.com/615087.
- return gfx::Transform();
-}
-
bool WmWindowMus::IsSystemModal() const {
NOTIMPLEMENTED();
return false;
@@ -372,168 +140,39 @@ bool WmWindowMus::IsSystemModal() const {
bool WmWindowMus::GetBoolProperty(WmWindowProperty key) {
switch (key) {
- case WmWindowProperty::ALWAYS_ON_TOP:
- return IsAlwaysOnTop();
-
- case WmWindowProperty::DRAW_ATTENTION:
- NOTIMPLEMENTED();
- return false;
-
- case WmWindowProperty::EXCLUDE_FROM_MRU:
- return GetExcludeFromMru(window_);
-
case WmWindowProperty::SNAP_CHILDREN_TO_PIXEL_BOUNDARY:
return snap_children_to_pixel_boundary_;
default:
- NOTREACHED();
break;
}
- NOTREACHED();
- return false;
-}
-
-SkColor WmWindowMus::GetColorProperty(WmWindowProperty key) {
- if (key == WmWindowProperty::TOP_VIEW_COLOR) {
- // TODO: need support for TOP_VIEW_COLOR: http://crbug.com/615100.
- NOTIMPLEMENTED();
- return 0;
- }
-
- NOTREACHED();
- return 0;
-}
-
-void WmWindowMus::SetColorProperty(WmWindowProperty key, SkColor value) {
- if (key == WmWindowProperty::TOP_VIEW_COLOR) {
- // TODO: need support for TOP_VIEW_COLOR: http://crbug.com/615100.
- NOTIMPLEMENTED();
- return;
- }
-
- NOTREACHED();
+ return WmWindowAura::GetBoolProperty(key);
}
int WmWindowMus::GetIntProperty(WmWindowProperty key) {
- if (key == WmWindowProperty::MODAL_TYPE) {
- // TODO: WindowTree::SetModalWindow() needs to route through WindowManager
- // so wm can position. http://crbug.com/645996.
- NOTIMPLEMENTED();
- return static_cast<int>(ui::MODAL_TYPE_NONE);
- }
-
- if (key == WmWindowProperty::SHELF_ID) {
- if (window_->HasSharedProperty(
- ui::mojom::WindowManager::kShelfId_Property)) {
- return window_->GetSharedProperty<int>(
- ui::mojom::WindowManager::kShelfId_Property);
- }
-
- return kInvalidShelfID;
- }
-
if (key == WmWindowProperty::SHELF_ITEM_TYPE) {
- if (window_->HasSharedProperty(
- ui::mojom::WindowManager::kShelfItemType_Property)) {
- return window_->GetSharedProperty<int>(
- ui::mojom::WindowManager::kShelfItemType_Property);
- }
- // Mash provides a default shelf item type for non-ignored windows.
- return GetWindowIgnoredByShelf(window_) ? TYPE_UNDEFINED : TYPE_APP;
- }
-
- if (key == WmWindowProperty::TOP_VIEW_INSET) {
- // TODO: need support for TOP_VIEW_INSET: http://crbug.com/615100.
- NOTIMPLEMENTED();
- return 0;
- }
-
- NOTREACHED();
- return 0;
-}
+ if (aura_window()->GetProperty(kShelfItemTypeKey) != TYPE_UNDEFINED)
+ return aura_window()->GetProperty(kShelfItemTypeKey);
-void WmWindowMus::SetIntProperty(WmWindowProperty key, int value) {
- if (key == WmWindowProperty::SHELF_ID) {
- window_->SetSharedProperty<int>(ui::mojom::WindowManager::kShelfId_Property,
- value);
- return;
- }
-
- if (key == WmWindowProperty::SHELF_ITEM_TYPE) {
- window_->SetSharedProperty<int>(
- ui::mojom::WindowManager::kShelfItemType_Property, value);
- return;
- }
-
- if (key == WmWindowProperty::TOP_VIEW_INSET) {
- // TODO: need support for TOP_VIEW_INSET: http://crbug.com/615100.
- NOTIMPLEMENTED();
- return;
+ // Mash provides a default shelf item type for non-ignored windows.
+ return GetWindowState()->ignored_by_shelf() ? TYPE_UNDEFINED : TYPE_APP;
}
- NOTREACHED();
-}
-
-std::string WmWindowMus::GetStringProperty(WmWindowProperty key) {
- NOTIMPLEMENTED();
- return std::string();
-}
-
-void WmWindowMus::SetStringProperty(WmWindowProperty key,
- const std::string& value) {
- NOTIMPLEMENTED();
-}
-
-gfx::ImageSkia WmWindowMus::GetWindowIcon() {
- NOTIMPLEMENTED();
- return gfx::ImageSkia();
-}
-
-gfx::ImageSkia WmWindowMus::GetAppIcon() {
- NOTIMPLEMENTED();
- return gfx::ImageSkia();
-}
-
-const wm::WindowState* WmWindowMus::GetWindowState() const {
- return window_state_.get();
+ return WmWindowAura::GetIntProperty(key);
}
WmWindow* WmWindowMus::GetToplevelWindow() {
- return WmShellMus::GetToplevelAncestor(window_);
+ return WmShellMus::GetToplevelAncestor(aura_window());
}
WmWindow* WmWindowMus::GetToplevelWindowForFocus() {
// TODO(sky): resolve if we really need two notions of top-level. In the mus
// world they are the same.
- return WmShellMus::GetToplevelAncestor(window_);
-}
-
-void WmWindowMus::SetParentUsingContext(WmWindow* context,
- const gfx::Rect& screen_bounds) {
- wm::GetDefaultParent(context, this, screen_bounds)->AddChild(this);
-}
-
-void WmWindowMus::AddChild(WmWindow* window) {
- window_->AddChild(GetMusWindow(window));
-}
-
-void WmWindowMus::RemoveChild(WmWindow* child) {
- window_->RemoveChild(GetMusWindow(child));
-}
-
-const WmWindow* WmWindowMus::GetParent() const {
- return Get(window_->parent());
-}
-
-const WmWindow* WmWindowMus::GetTransientParent() const {
- return Get(window_->transient_parent());
-}
-
-std::vector<WmWindow*> WmWindowMus::GetTransientChildren() {
- return FromMusWindows(window_->transient_children());
+ return WmShellMus::GetToplevelAncestor(aura_window());
}
+// TODO: investigate if needed.
James Cook 2016/12/05 19:21:44 super nit: TODO(mash) or TODO(sky) https://google
sky 2016/12/05 21:39:19 Done.
bool WmWindowMus::MoveToEventRoot(const ui::Event& event) {
views::View* target = static_cast<views::View*>(event.target());
if (!target)
@@ -548,99 +187,7 @@ bool WmWindowMus::MoveToEventRoot(const ui::Event& event) {
return true;
}
-void WmWindowMus::SetLayoutManager(
- std::unique_ptr<WmLayoutManager> layout_manager) {
- if (layout_manager) {
- layout_manager_adapter_.reset(
- new MusLayoutManagerAdapter(window_, std::move(layout_manager)));
- } else {
- layout_manager_adapter_.reset();
- }
-}
-
-WmLayoutManager* WmWindowMus::GetLayoutManager() {
- return layout_manager_adapter_ ? layout_manager_adapter_->layout_manager()
- : nullptr;
-}
-
-void WmWindowMus::SetVisibilityChangesAnimated() {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::SetVisibilityAnimationType(int type) {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::SetVisibilityAnimationDuration(base::TimeDelta delta) {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::SetVisibilityAnimationTransition(
- ::wm::WindowVisibilityAnimationTransition transition) {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::Animate(::wm::WindowAnimationType type) {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::StopAnimatingProperty(
- ui::LayerAnimationElement::AnimatableProperty property) {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::SetChildWindowVisibilityChangesAnimated() {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::SetMasksToBounds(bool value) {
- // TODO: mus needs mask to bounds support: http://crbug.com/615550.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::SetBounds(const gfx::Rect& bounds) {
- if (window_->parent()) {
- WmWindowMus* parent = WmWindowMus::Get(window_->parent());
- if (parent->layout_manager_adapter_) {
- parent->layout_manager_adapter_->layout_manager()->SetChildBounds(this,
- bounds);
- return;
- }
- }
- SetBoundsDirect(bounds);
-}
-
-void WmWindowMus::SetBoundsWithTransitionDelay(const gfx::Rect& bounds,
- base::TimeDelta delta) {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
- SetBounds(bounds);
-}
-
-void WmWindowMus::SetBoundsDirect(const gfx::Rect& bounds) {
- window_->SetBounds(bounds);
- SnapToPixelBoundaryIfNecessary();
-}
-
-void WmWindowMus::SetBoundsDirectAnimated(const gfx::Rect& bounds) {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
- SetBoundsDirect(bounds);
-}
-
-void WmWindowMus::SetBoundsDirectCrossFade(const gfx::Rect& bounds) {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
- SetBoundsDirect(bounds);
-}
-
+// TODO: investigate if needed.
void WmWindowMus::SetBoundsInScreen(const gfx::Rect& bounds_in_screen,
const display::Display& dst_display) {
DCHECK(GetParent()); // Aura code assumed a parent, so this does too.
@@ -653,145 +200,12 @@ void WmWindowMus::SetBoundsInScreen(const gfx::Rect& bounds_in_screen,
wm::SetBoundsInScreen(this, bounds_in_screen, dst_display);
}
-gfx::Rect WmWindowMus::GetBoundsInScreen() const {
- return ConvertRectToScreen(gfx::Rect(window_->bounds().size()));
-}
-
-const gfx::Rect& WmWindowMus::GetBounds() const {
- return window_->bounds();
-}
-
-gfx::Rect WmWindowMus::GetTargetBounds() {
- // TODO: need animation support: http://crbug.com/615087.
- NOTIMPLEMENTED();
- return window_->bounds();
-}
-
-void WmWindowMus::ClearRestoreBounds() {
- window_->ClearSharedProperty(
- ui::mojom::WindowManager::kRestoreBounds_Property);
-}
-
-void WmWindowMus::SetRestoreBoundsInScreen(const gfx::Rect& bounds) {
- SetRestoreBounds(window_, bounds);
-}
-
-gfx::Rect WmWindowMus::GetRestoreBoundsInScreen() const {
- return GetRestoreBounds(window_);
-}
-
-bool WmWindowMus::Contains(const WmWindow* other) const {
- return other
- ? window_->Contains(
- static_cast<const WmWindowMus*>(other)->window_)
- : false;
-}
-
-void WmWindowMus::SetShowState(ui::WindowShowState show_state) {
- SetWindowShowState(window_, MojomWindowShowStateFromUI(show_state));
-}
-
-ui::WindowShowState WmWindowMus::GetShowState() const {
- return UIWindowShowStateFromMojom(GetWindowShowState(window_));
-}
-
-void WmWindowMus::SetRestoreShowState(ui::WindowShowState show_state) {
- restore_show_state_ = show_state;
-}
-
-void WmWindowMus::SetRestoreOverrides(
- const gfx::Rect& bounds_override,
- ui::WindowShowState window_state_override) {
- // TODO(sky): see http://crbug.com/623314.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::SetLockedToRoot(bool value) {
- locked_to_root_ = value;
-}
-
-bool WmWindowMus::IsLockedToRoot() const {
- return locked_to_root_;
-}
-
-void WmWindowMus::SetCapture() {
- window_->SetCapture();
-}
-
-bool WmWindowMus::HasCapture() {
- return window_->HasCapture();
-}
-
-void WmWindowMus::ReleaseCapture() {
- window_->ReleaseCapture();
-}
-
-bool WmWindowMus::HasRestoreBounds() const {
- return window_->HasSharedProperty(
- ui::mojom::WindowManager::kRestoreBounds_Property);
-}
-
-bool WmWindowMus::CanMaximize() const {
- return (GetResizeBehavior(window_) &
- ::ui::mojom::kResizeBehaviorCanMaximize) != 0;
-}
-
-bool WmWindowMus::CanMinimize() const {
- return (GetResizeBehavior(window_) &
- ::ui::mojom::kResizeBehaviorCanMinimize) != 0;
-}
-
-bool WmWindowMus::CanResize() const {
- return window_ &&
- (GetResizeBehavior(window_) & ::ui::mojom::kResizeBehaviorCanResize) !=
- 0;
-}
-
-bool WmWindowMus::CanActivate() const {
- // TODO(sky): this isn't quite right. Should key off CanFocus(), which is not
- // replicated.
- return widget_ != nullptr;
-}
-
-void WmWindowMus::StackChildAtTop(WmWindow* child) {
- GetMusWindow(child)->MoveToFront();
-}
-
-void WmWindowMus::StackChildAtBottom(WmWindow* child) {
- GetMusWindow(child)->MoveToBack();
-}
-
-void WmWindowMus::StackChildAbove(WmWindow* child, WmWindow* target) {
- GetMusWindow(child)->Reorder(GetMusWindow(target),
- ui::mojom::OrderDirection::ABOVE);
-}
-
-void WmWindowMus::StackChildBelow(WmWindow* child, WmWindow* target) {
- GetMusWindow(child)->Reorder(GetMusWindow(target),
- ui::mojom::OrderDirection::BELOW);
-}
-
+// TODO: remove this override.
void WmWindowMus::SetPinned(bool trusted) {
// http://crbug.com/622486.
NOTIMPLEMENTED();
}
-void WmWindowMus::SetAlwaysOnTop(bool value) {
- mus::SetAlwaysOnTop(window_, value);
-}
-
-bool WmWindowMus::IsAlwaysOnTop() const {
- return mus::IsAlwaysOnTop(window_);
-}
-
-void WmWindowMus::Hide() {
- window_->SetVisible(false);
-}
-
-void WmWindowMus::Show() {
- window_->SetVisible(true);
-}
-
views::Widget* WmWindowMus::GetInternalWidget() {
// Don't return the window frame widget for an embedded client window.
if (widget_creation_type_ == WidgetCreationType::FOR_CLIENT)
@@ -803,74 +217,19 @@ views::Widget* WmWindowMus::GetInternalWidget() {
void WmWindowMus::CloseWidget() {
DCHECK(widget_);
// Allow the client to service the close request for remote widgets.
- if (widget_creation_type_ == WidgetCreationType::FOR_CLIENT)
- window_->RequestClose();
- else
+ if (widget_creation_type_ == WidgetCreationType::FOR_CLIENT) {
+ WmShellMus::Get()->window_manager()->window_manager_client()->RequestClose(
+ aura_window());
+ } else {
widget_->Close();
+ }
}
-void WmWindowMus::SetFocused() {
- window_->SetFocus();
-}
-
-bool WmWindowMus::IsFocused() const {
- return window_->HasFocus();
-}
-
-bool WmWindowMus::IsActive() const {
- ui::Window* focused = window_->window_tree()->GetFocusedWindow();
- return focused && window_->Contains(focused);
-}
-
-void WmWindowMus::Activate() {
- window_->SetFocus();
- WmWindow* top_level = GetToplevelWindow();
- if (!top_level)
- return;
-
- // TODO(sky): mus should do this too.
- GetMusWindow(top_level)->MoveToFront();
-}
-
-void WmWindowMus::Deactivate() {
- if (IsActive())
- window_->window_tree()->ClearFocus();
-}
-
-void WmWindowMus::SetFullscreen() {
- SetWindowShowState(window_, ui::mojom::ShowState::FULLSCREEN);
-}
-
-void WmWindowMus::Maximize() {
- SetWindowShowState(window_, ui::mojom::ShowState::MAXIMIZED);
-}
-
-void WmWindowMus::Minimize() {
- SetWindowShowState(window_, ui::mojom::ShowState::MINIMIZED);
-}
-
-void WmWindowMus::Unminimize() {
- SetWindowShowState(window_, MojomWindowShowStateFromUI(restore_show_state_));
- restore_show_state_ = ui::SHOW_STATE_DEFAULT;
-}
-
-void WmWindowMus::SetExcludedFromMru(bool excluded_from_mru) {
- SetExcludeFromMru(window_, excluded_from_mru);
-}
-
-std::vector<WmWindow*> WmWindowMus::GetChildren() {
- return FromMusWindows(window_->children());
-}
-
-WmWindow* WmWindowMus::GetChildByShellWindowId(int id) {
- if (id == shell_window_id_)
- return this;
- for (ui::Window* child : window_->children()) {
- WmWindow* result = Get(child)->GetChildByShellWindowId(id);
- if (result)
- return result;
- }
- return nullptr;
+// TODO: investigate if needed.
+bool WmWindowMus::CanActivate() const {
+ // TODO(sky): this isn't quite right. Should key off CanFocus(), which is not
+ // replicated.
+ return WmWindowAura::CanActivate() && widget_ != nullptr;
}
void WmWindowMus::ShowResizeShadow(int component) {
@@ -890,6 +249,7 @@ void WmWindowMus::InstallResizeHandleWindowTargeter(
// http://crbug.com/548435.
}
+// TODO: nuke this once SetBoundsInScreen() is updated.
void WmWindowMus::SetBoundsInScreenBehaviorForChildren(
WmWindow::BoundsInScreenBehavior behavior) {
child_bounds_in_screen_behavior_ = behavior;
@@ -900,14 +260,14 @@ void WmWindowMus::SetSnapsChildrenToPhysicalPixelBoundary() {
return;
snap_children_to_pixel_boundary_ = true;
- for (auto& observer : observers_) {
+ for (auto& observer : observers()) {
observer.OnWindowPropertyChanged(
this, WmWindowProperty::SNAP_CHILDREN_TO_PIXEL_BOUNDARY);
}
}
void WmWindowMus::SnapToPixelBoundaryIfNecessary() {
- WmWindowMus* parent = Get(window_->parent());
+ WmWindowMus* parent = Get(aura_window()->parent());
if (parent && parent->snap_children_to_pixel_boundary_) {
// TODO: implement snap to pixel: http://crbug.com/615554.
NOTIMPLEMENTED();
@@ -918,133 +278,10 @@ void WmWindowMus::SetChildrenUseExtendedHitRegion() {
children_use_extended_hit_region_ = true;
}
-std::unique_ptr<views::View> WmWindowMus::CreateViewWithRecreatedLayers() {
- // TODO: need real implementation, http://crbug.com/629497.
- std::unique_ptr<views::View> view(new views::View);
- return view;
-}
-
-void WmWindowMus::AddObserver(WmWindowObserver* observer) {
- observers_.AddObserver(observer);
-}
-
-void WmWindowMus::RemoveObserver(WmWindowObserver* observer) {
- observers_.RemoveObserver(observer);
-}
-
-bool WmWindowMus::HasObserver(const WmWindowObserver* observer) const {
- return observers_.HasObserver(observer);
-}
-
-void WmWindowMus::AddTransientWindowObserver(
- WmTransientWindowObserver* observer) {
- transient_observers_.AddObserver(observer);
-}
-
-void WmWindowMus::RemoveTransientWindowObserver(
- WmTransientWindowObserver* observer) {
- transient_observers_.RemoveObserver(observer);
-}
-
void WmWindowMus::AddLimitedPreTargetHandler(ui::EventHandler* handler) {
- DCHECK(GetInternalWidget());
- widget_->GetNativeWindow()->AddPreTargetHandler(handler);
-}
-
-void WmWindowMus::RemoveLimitedPreTargetHandler(ui::EventHandler* handler) {
- widget_->GetNativeWindow()->RemovePreTargetHandler(handler);
-}
-
-void WmWindowMus::OnTreeChanging(const TreeChangeParams& params) {
- WmWindowObserver::TreeChangeParams wm_params;
- wm_params.target = Get(params.target);
- wm_params.new_parent = Get(params.new_parent);
- wm_params.old_parent = Get(params.old_parent);
- for (auto& observer : observers_)
- observer.OnWindowTreeChanging(this, wm_params);
-}
-
-void WmWindowMus::OnTreeChanged(const TreeChangeParams& params) {
- WmWindowObserver::TreeChangeParams wm_params;
- wm_params.target = Get(params.target);
- wm_params.new_parent = Get(params.new_parent);
- wm_params.old_parent = Get(params.old_parent);
- for (auto& observer : observers_)
- observer.OnWindowTreeChanged(this, wm_params);
-}
-
-void WmWindowMus::OnWindowReordered(ui::Window* window,
- ui::Window* relative_window,
- ui::mojom::OrderDirection direction) {
- for (auto& observer : observers_)
- observer.OnWindowStackingChanged(this);
-}
-
-void WmWindowMus::OnWindowSharedPropertyChanged(
- ui::Window* window,
- const std::string& name,
- const std::vector<uint8_t>* old_data,
- const std::vector<uint8_t>* new_data) {
- if (name == ui::mojom::WindowManager::kShowState_Property) {
- GetWindowState()->OnWindowShowStateChanged();
- return;
- }
- if (name == ui::mojom::WindowManager::kWindowTitle_Property) {
- for (auto& observer : observers_)
- observer.OnWindowTitleChanged(this);
- return;
- }
-
- // Notify WmWindowObserver of certain white-listed property changes.
- WmWindowProperty wm_property = WmWindowPropertyFromUI(name);
- if (wm_property != WmWindowProperty::INVALID_PROPERTY) {
- for (auto& observer : observers_)
- observer.OnWindowPropertyChanged(this, wm_property);
- return;
- }
-
- // Deal with snap to pixel.
- NOTIMPLEMENTED();
-}
-
-void WmWindowMus::OnWindowBoundsChanged(ui::Window* window,
- const gfx::Rect& old_bounds,
- const gfx::Rect& new_bounds) {
- for (auto& observer : observers_)
- observer.OnWindowBoundsChanged(this, old_bounds, new_bounds);
-}
-
-void WmWindowMus::OnWindowDestroying(ui::Window* window) {
- for (auto& observer : observers_)
- observer.OnWindowDestroying(this);
-}
-
-void WmWindowMus::OnWindowDestroyed(ui::Window* window) {
- for (auto& observer : observers_)
- observer.OnWindowDestroyed(this);
-}
-
-void WmWindowMus::OnWindowVisibilityChanging(ui::Window* window, bool visible) {
- DCHECK_EQ(window_, window);
- for (auto& observer : observers_)
- observer.OnWindowVisibilityChanging(this, visible);
-}
-
-void WmWindowMus::OnWindowVisibilityChanged(ui::Window* window, bool visible) {
- for (auto& observer : observers_)
- observer.OnWindowVisibilityChanged(Get(window), visible);
-}
-
-void WmWindowMus::OnTransientChildAdded(ui::Window* window,
- ui::Window* transient) {
- for (auto& observer : transient_observers_)
- observer.OnTransientChildAdded(this, Get(transient));
-}
-
-void WmWindowMus::OnTransientChildRemoved(ui::Window* window,
- ui::Window* transient) {
- for (auto& observer : transient_observers_)
- observer.OnTransientChildRemoved(this, Get(transient));
+ DCHECK(WmShellMus::Get()->window_tree_client()->WasCreatedByThisClient(
+ aura::WindowMus::Get(aura_window())));
+ WmWindowAura::AddLimitedPreTargetHandler(handler);
}
James Cook 2016/12/05 19:21:44 Woo hoo! So nice to see so much code going away.
} // namespace mus

Powered by Google App Engine
This is Rietveld 408576698