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

Unified Diff: ash/shelf/shelf_layout_manager.cc

Issue 2237613002: mash: Migrate some misc ShelfLayoutManager deps to ash common. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move ShelfBezelEventHandler to WmShelfAura. Created 4 years, 4 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
Index: ash/shelf/shelf_layout_manager.cc
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc
index 4422b63640b5856abe05587709273efbf7146eb0..e354bb8b6d30f9965945935160c3cc987ea6be50 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -17,6 +17,7 @@
#include "ash/common/system/status_area_widget.h"
#include "ash/common/wm/fullscreen_window_finder.h"
#include "ash/common/wm/mru_window_tracker.h"
+#include "ash/common/wm/window_animation_types.h"
#include "ash/common/wm/window_state.h"
#include "ash/common/wm/wm_screen_util.h"
#include "ash/common/wm_lookup.h"
@@ -25,10 +26,7 @@
#include "ash/common/wm_shell.h"
#include "ash/common/wm_window.h"
#include "ash/shelf/shelf.h"
-#include "ash/shelf/shelf_bezel_event_filter.h"
#include "ash/shelf/shelf_layout_manager_observer.h"
-#include "ash/shell.h"
James Cook 2016/08/11 00:50:06 hooray!
msw 2016/08/11 02:08:51 Acknowledged.
-#include "ash/wm/window_animations.h"
#include "ash/wm/workspace_controller.h"
#include "base/auto_reset.h"
#include "base/i18n/rtl.h"
@@ -147,7 +145,6 @@ ShelfLayoutManager::ShelfLayoutManager(ShelfWidget* shelf_widget)
workspace_controller_(NULL),
window_overlaps_shelf_(false),
mouse_over_shelf_when_auto_hide_timer_started_(false),
- bezel_event_filter_(new ShelfBezelEventFilter(this)),
gesture_drag_status_(GESTURE_DRAG_NONE),
gesture_drag_amount_(0.f),
gesture_drag_auto_hide_state_(SHELF_AUTO_HIDE_SHOWN),
@@ -175,10 +172,7 @@ ShelfLayoutManager::~ShelfLayoutManager() {
void ShelfLayoutManager::PrepareForShutdown() {
in_shutdown_ = true;
- // Clear all event filters, otherwise sometimes those filters may catch
- // synthesized mouse event and cause crashes during the shutdown.
- set_workspace_controller(NULL);
- bezel_event_filter_.reset();
+ set_workspace_controller(nullptr);
// Stop observing changes to avoid updating a partially destructed shelf.
WmShell::Get()->RemoveActivationObserver(this);
}
@@ -402,11 +396,6 @@ void ShelfLayoutManager::OnLockStateChanged(bool locked) {
UpdateShelfVisibilityAfterLoginUIChange();
}
-void ShelfLayoutManager::OnShelfAlignmentChanged(WmWindow* root_window) {
- if (Shell::GetInstance()->in_mus())
- LayoutShelf();
-}
-
void ShelfLayoutManager::OnShelfAutoHideBehaviorChanged(WmWindow* root_window) {
UpdateVisibilityState();
}
@@ -576,7 +565,7 @@ void ShelfLayoutManager::UpdateBoundsAndOpacity(
GetLayer(shelf_widget_->status_area_widget())->GetAnimator());
if (animate) {
int duration = duration_override_in_ms_ ? duration_override_in_ms_
- : kCrossFadeDurationMS;
+ : wm::kCrossFadeDurationMS;
shelf_animation_setter.SetTransitionDuration(
base::TimeDelta::FromMilliseconds(duration));
shelf_animation_setter.SetTweenType(gfx::Tween::EASE_OUT);
@@ -596,12 +585,9 @@ void ShelfLayoutManager::UpdateBoundsAndOpacity(
status_animation_setter.AddObserver(observer);
GetLayer(shelf_widget_)->SetOpacity(target_bounds.opacity);
- // mash::wm::ShelfLayout manages window bounds when running in mash.
- if (!Shell::GetInstance()->in_mus()) {
- WmWindow* window = WmLookup::Get()->GetWindowForWidget(shelf_widget_);
- shelf_widget_->SetBounds(window->GetParent()->ConvertRectToScreen(
- target_bounds.shelf_bounds_in_root));
- }
+ WmWindow* shelf_window = WmLookup::Get()->GetWindowForWidget(shelf_widget_);
+ shelf_widget_->SetBounds(shelf_window->GetParent()->ConvertRectToScreen(
+ target_bounds.shelf_bounds_in_root));
GetLayer(shelf_widget_->status_area_widget())
->SetOpacity(target_bounds.status_opacity);
@@ -618,13 +604,11 @@ 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());
- // mash::wm::ShelfLayout manages window bounds when running mash.
- if (!Shell::GetInstance()->in_mus()) {
- WmWindow* window = WmLookup::Get()->GetWindowForWidget(
- shelf_widget_->status_area_widget());
- shelf_widget_->status_area_widget()->SetBounds(
- window->GetParent()->ConvertRectToScreen(status_bounds));
- }
+ WmWindow* status_window = WmLookup::Get()->GetWindowForWidget(
+ shelf_widget_->status_area_widget());
+ shelf_widget_->status_area_widget()->SetBounds(
+ status_window->GetParent()->ConvertRectToScreen(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.
if (!state_.is_screen_locked &&
@@ -635,8 +619,7 @@ void ShelfLayoutManager::UpdateBoundsAndOpacity(
// if keyboard is not shown.
if (!state_.is_adding_user_screen || !keyboard_bounds_.IsEmpty())
insets = target_bounds.work_area_insets;
- WmWindow* window = WmLookup::Get()->GetWindowForWidget(shelf_widget_);
- WmShell::Get()->SetDisplayWorkAreaInsets(window, insets);
+ WmShell::Get()->SetDisplayWorkAreaInsets(shelf_window, insets);
}
}
@@ -907,25 +890,22 @@ ShelfAutoHideState ShelfLayoutManager::CalculateAutoHideState(
shelf_widget_->status_area_widget()->IsActive()))
return SHELF_AUTO_HIDE_SHOWN;
- // TODO(jamescook): Track visible windows on mash via ShelfDelegate.
- if (!Shell::GetInstance()->in_mus()) {
- const std::vector<WmWindow*> windows =
- WmShell::Get()->mru_window_tracker()->BuildWindowListIgnoreModal();
-
- // Process the window list and check if there are any visible windows.
- bool visible_window = false;
- for (size_t i = 0; i < windows.size(); ++i) {
- if (windows[i] && windows[i]->IsVisible() &&
- !windows[i]->GetWindowState()->IsMinimized() &&
- windows[i]->GetDisplayNearestWindow().id() == shelf_display_id) {
- visible_window = true;
- break;
- }
+ const std::vector<WmWindow*> windows =
+ WmShell::Get()->mru_window_tracker()->BuildWindowListIgnoreModal();
+
+ // Process the window list and check if there are any visible windows.
+ bool visible_window = false;
+ for (size_t i = 0; i < windows.size(); ++i) {
+ if (windows[i] && windows[i]->IsVisible() &&
+ !windows[i]->GetWindowState()->IsMinimized() &&
+ windows[i]->GetDisplayNearestWindow().id() == shelf_display_id) {
+ visible_window = true;
+ break;
}
- // If there are no visible windows do not hide the shelf.
- if (!visible_window)
- return SHELF_AUTO_HIDE_SHOWN;
}
+ // If there are no visible windows do not hide the shelf.
+ if (!visible_window)
+ return SHELF_AUTO_HIDE_SHOWN;
if (gesture_drag_status_ == GESTURE_DRAG_COMPLETE_IN_PROGRESS)
return gesture_drag_auto_hide_state_;

Powered by Google App Engine
This is Rietveld 408576698