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

Unified Diff: ash/shelf/shelf_layout_manager.cc

Issue 247363005: Fullscreen/immersive mode is allowed in touch view mode, the shelf gets hidden and an edge swipe br… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 789c884c5ce5b495e08ff7cb02dd677495b5d3a1..a1d2063b7cb022998fd691a045373a9bc1b6d3bb 100644
--- a/ash/shelf/shelf_layout_manager.cc
+++ b/ash/shelf/shelf_layout_manager.cc
@@ -314,7 +314,7 @@ void ShelfLayoutManager::UpdateVisibilityState() {
return;
if (Shell::GetInstance()->session_state_delegate()->IsScreenLocked() ||
- force_shelf_always_visibile_) {
+ IsShelfForcedToBeVisible()) {
SetState(SHELF_VISIBLE);
} else {
// TODO(zelidrag): Verify shelf drag animation still shows on the device
@@ -389,7 +389,7 @@ void ShelfLayoutManager::RemoveObserver(ShelfLayoutManagerObserver* observer) {
// ShelfLayoutManager, Gesture functions:
void ShelfLayoutManager::OnGestureEdgeSwipe(const ui::GestureEvent& gesture) {
- if (force_shelf_always_visibile_)
+ if (IsShelfForcedToBeVisible())
return;
if (visibility_state() == SHELF_AUTO_HIDE) {
@@ -401,7 +401,7 @@ void ShelfLayoutManager::OnGestureEdgeSwipe(const ui::GestureEvent& gesture) {
}
void ShelfLayoutManager::StartGestureDrag(const ui::GestureEvent& gesture) {
- if (force_shelf_always_visibile_)
+ if (IsShelfForcedToBeVisible())
return;
gesture_drag_status_ = GESTURE_DRAG_IN_PROGRESS;
gesture_drag_amount_ = 0.f;
@@ -412,7 +412,7 @@ void ShelfLayoutManager::StartGestureDrag(const ui::GestureEvent& gesture) {
ShelfLayoutManager::DragState ShelfLayoutManager::UpdateGestureDrag(
const ui::GestureEvent& gesture) {
- if (force_shelf_always_visibile_)
+ if (IsShelfForcedToBeVisible())
return DRAG_SHELF;
bool horizontal = IsHorizontalAlignment();
gesture_drag_amount_ += horizontal ? gesture.details().scroll_y() :
@@ -438,7 +438,7 @@ ShelfLayoutManager::DragState ShelfLayoutManager::UpdateGestureDrag(
}
void ShelfLayoutManager::CompleteGestureDrag(const ui::GestureEvent& gesture) {
- if (force_shelf_always_visibile_)
+ if (IsShelfForcedToBeVisible())
return;
bool horizontal = IsHorizontalAlignment();
bool should_change = false;
@@ -1008,7 +1008,7 @@ gfx::Rect ShelfLayoutManager::GetAutoHideShowShelfRegionInScreen() const {
ShelfAutoHideState ShelfLayoutManager::CalculateAutoHideState(
ShelfVisibilityState visibility_state) const {
- if (force_shelf_always_visibile_)
+ if (IsShelfForcedToBeVisible())
return SHELF_AUTO_HIDE_SHOWN;
if (visibility_state != SHELF_AUTO_HIDE || !shelf_)
@@ -1121,6 +1121,17 @@ int ShelfLayoutManager::GetWorkAreaSize(const State& state, int size) const {
return 0;
}
+bool ShelfLayoutManager::IsShelfForcedToBeVisible() const {
+ // Bail out early when there is no |workspace_controller_|, which happens
+ // during shutdown after PrepareForShutdown.
+ if (!workspace_controller_)
+ return force_shelf_always_visibile_;
+
+ return force_shelf_always_visibile_ &&
+ workspace_controller_->GetWindowState() !=
+ WORKSPACE_WINDOW_STATE_FULL_SCREEN;
+}
+
gfx::Rect ShelfLayoutManager::GetAvailableBounds() const {
gfx::Rect bounds(root_window_->bounds());
bounds.set_height(bounds.height() - keyboard_bounds_.height());

Powered by Google App Engine
This is Rietveld 408576698