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

Unified Diff: ash/shelf/shelf_layout_manager.cc

Issue 2888623005: mash: Remove some WmWindow usage in ash/shelf. (Closed)
Patch Set: Created 3 years, 7 months 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
« no previous file with comments | « ash/shelf/shelf_layout_manager.h ('k') | ash/shelf/wm_shelf.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/shelf/shelf_layout_manager.cc
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
index 19deab0a039b3bbec21e718d8e84468befbb781a..0ab2ec305b1294468aca9f80cf403c63810aeac2 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -77,9 +77,9 @@ ui::Layer* GetLayer(views::Widget* widget) {
}
// Returns true if the window is in the app list window container.
-bool IsAppListWindow(WmWindow* window) {
- return window->GetParent() && window->GetParent()->aura_window()->id() ==
- kShellWindowId_AppListContainer;
+bool IsAppListWindow(const aura::Window* window) {
+ const aura::Window* parent = window->parent();
+ return parent && parent->id() == kShellWindowId_AppListContainer;
}
} // namespace
@@ -235,7 +235,7 @@ ShelfVisibilityState ShelfLayoutManager::CalculateShelfVisibility() {
void ShelfLayoutManager::UpdateVisibilityState() {
// Bail out early before the shelf is initialized or after it is destroyed.
- WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow());
+ aura::Window* shelf_window = shelf_widget_->GetNativeWindow();
James Cook 2017/05/16 21:50:16 Your patch and mine are going to conflict here. Yo
if (in_shutdown_ || !wm_shelf_->IsShelfInitialized() || !shelf_window)
return;
if (state_.IsScreenLocked() || state_.IsAddingSecondaryUser()) {
@@ -246,7 +246,8 @@ void ShelfLayoutManager::UpdateVisibilityState() {
// TODO(zelidrag): Verify shelf drag animation still shows on the device
// when we are in SHELF_AUTO_HIDE_ALWAYS_HIDDEN.
wm::WorkspaceWindowState window_state(
- shelf_window->GetRootWindowController()->GetWorkspaceWindowState());
+ RootWindowController::ForWindow(shelf_window)
+ ->GetWorkspaceWindowState());
switch (window_state) {
case wm::WORKSPACE_WINDOW_STATE_FULL_SCREEN: {
@@ -302,7 +303,7 @@ void ShelfLayoutManager::UpdateAutoHideState() {
}
void ShelfLayoutManager::UpdateAutoHideForMouseEvent(ui::MouseEvent* event,
- WmWindow* target) {
+ aura::Window* target) {
// This also checks IsShelfWindow() to make sure we don't attempt to hide the
// shelf if the mouse down occurs on the shelf.
in_mouse_drag_ = (event->type() == ui::ET_MOUSE_DRAGGED ||
@@ -323,7 +324,7 @@ void ShelfLayoutManager::UpdateAutoHideForMouseEvent(ui::MouseEvent* event,
}
void ShelfLayoutManager::UpdateAutoHideForGestureEvent(ui::GestureEvent* event,
- WmWindow* target) {
+ aura::Window* target) {
if (visibility_state() != SHELF_AUTO_HIDE || in_shutdown_)
return;
@@ -492,8 +493,8 @@ void ShelfLayoutManager::SetState(ShelfVisibilityState visibility_state) {
state.visibility_state = visibility_state;
state.auto_hide_state = CalculateAutoHideState(visibility_state);
- WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow());
- RootWindowController* controller = shelf_window->GetRootWindowController();
+ RootWindowController* controller =
+ RootWindowController::ForWindow(shelf_widget_->GetNativeWindow());
state.window_state = controller ? controller->GetWorkspaceWindowState()
: wm::WORKSPACE_WINDOW_STATE_DEFAULT;
// Preserve the log in screen states.
@@ -571,12 +572,13 @@ void ShelfLayoutManager::UpdateBoundsAndOpacity(
bool animate,
bool change_work_area,
ui::ImplicitAnimationObserver* observer) {
+ StatusAreaWidget* status_widget = shelf_widget_->status_area_widget();
base::AutoReset<bool> auto_reset_updating_bounds(&updating_bounds_, true);
{
ui::ScopedLayerAnimationSettings shelf_animation_setter(
GetLayer(shelf_widget_)->GetAnimator());
ui::ScopedLayerAnimationSettings status_animation_setter(
- GetLayer(shelf_widget_->status_area_widget())->GetAnimator());
+ GetLayer(status_widget)->GetAnimator());
if (animate) {
int duration = duration_override_in_ms_ ? duration_override_in_ms_
: kAnimationDurationMS;
@@ -599,17 +601,17 @@ void ShelfLayoutManager::UpdateBoundsAndOpacity(
status_animation_setter.AddObserver(observer);
GetLayer(shelf_widget_)->SetOpacity(target_bounds.opacity);
- WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow());
- shelf_widget_->SetBounds(shelf_window->GetParent()->ConvertRectToScreen(
- target_bounds.shelf_bounds_in_root));
+ gfx::Rect shelf_bounds = target_bounds.shelf_bounds_in_root;
+ ::wm::ConvertRectToScreen(shelf_widget_->GetNativeWindow()->parent(),
+ &shelf_bounds);
+ shelf_widget_->SetBounds(shelf_bounds);
- GetLayer(shelf_widget_->status_area_widget())
- ->SetOpacity(target_bounds.status_opacity);
+ GetLayer(status_widget)->SetOpacity(target_bounds.status_opacity);
// Having a window which is visible but does not have an opacity is an
// illegal state. We therefore hide the shelf here if required.
if (!target_bounds.status_opacity)
- shelf_widget_->status_area_widget()->Hide();
+ status_widget->Hide();
// Setting visibility during an animation causes the visibility property to
// animate. Override the animation settings to immediately set the
// visibility property. Opacity will still animate.
@@ -618,10 +620,9 @@ void ShelfLayoutManager::UpdateBoundsAndOpacity(
// this can be simplified.
gfx::Rect status_bounds = target_bounds.status_bounds_in_shelf;
status_bounds.Offset(target_bounds.shelf_bounds_in_root.OffsetFromOrigin());
- WmWindow* status_window =
- WmWindow::Get(shelf_widget_->status_area_widget()->GetNativeWindow());
- shelf_widget_->status_area_widget()->SetBounds(
- status_window->GetParent()->ConvertRectToScreen(status_bounds));
+ ::wm::ConvertRectToScreen(status_widget->GetNativeWindow()->parent(),
+ &status_bounds);
+ status_widget->SetBounds(status_bounds);
// For crbug.com/622431, when the shelf alignment is BOTTOM_LOCKED, we
// don't set display work area, as it is not real user-set alignment.
@@ -634,6 +635,7 @@ void ShelfLayoutManager::UpdateBoundsAndOpacity(
// if keyboard is not shown.
if (!state_.IsAddingSecondaryUser() || !keyboard_bounds_.IsEmpty())
insets = target_bounds.work_area_insets;
+ WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow());
ShellPort::Get()->SetDisplayWorkAreaInsets(shelf_window, insets);
}
}
@@ -648,7 +650,7 @@ void ShelfLayoutManager::UpdateBoundsAndOpacity(
// Setting visibility during an animation causes the visibility property to
// animate. Set the visibility property without an animation.
if (target_bounds.status_opacity)
- shelf_widget_->status_area_widget()->Show();
+ status_widget->Show();
}
void ShelfLayoutManager::StopAnimating() {
@@ -874,7 +876,7 @@ bool ShelfLayoutManager::HasVisibleWindow() const {
// Process the window list and check if there are any visible windows.
// Ignore app list windows that may be animating to hide after dismissal.
for (auto* window : windows) {
- if (window->IsVisible() && !IsAppListWindow(window) &&
+ if (window->IsVisible() && !IsAppListWindow(window->aura_window()) &&
root->Contains(window)) {
return true;
}
@@ -961,12 +963,12 @@ ShelfAutoHideState ShelfLayoutManager::CalculateAutoHideState(
return SHELF_AUTO_HIDE_HIDDEN;
}
-bool ShelfLayoutManager::IsShelfWindow(WmWindow* window) {
+bool ShelfLayoutManager::IsShelfWindow(aura::Window* window) {
if (!window)
return false;
- WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow());
- WmWindow* status_window =
- WmWindow::Get(shelf_widget_->status_area_widget()->GetNativeWindow());
+ const aura::Window* shelf_window = shelf_widget_->GetNativeWindow();
+ const aura::Window* status_window =
+ shelf_widget_->status_area_widget()->GetNativeWindow();
return (shelf_window && shelf_window->Contains(window)) ||
(status_window && status_window->Contains(window));
}
« no previous file with comments | « ash/shelf/shelf_layout_manager.h ('k') | ash/shelf/wm_shelf.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698