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

Unified Diff: athena/home/home_card_impl.cc

Issue 601333002: ESC accelerator and consistent overview mode for Athena homecard (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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: athena/home/home_card_impl.cc
diff --git a/athena/home/home_card_impl.cc b/athena/home/home_card_impl.cc
index 2b11db46220dc0e0f33b46f7b0f6d66810ef2376..8036a4e6c3fcbc90beb7d7f72e8cfae0d096f608 100644
--- a/athena/home/home_card_impl.cc
+++ b/athena/home/home_card_impl.cc
@@ -226,6 +226,7 @@ HomeCardImpl::HomeCardImpl(AppModelBuilder* model_builder)
: model_builder_(model_builder),
state_(HIDDEN),
original_state_(VISIBLE_MINIMIZED),
+ overview_state_(VISIBLE_BOTTOM),
home_card_widget_(NULL),
home_card_view_(NULL),
layout_manager_(NULL),
@@ -302,6 +303,21 @@ void HomeCardImpl::InstallAccelerators() {
accelerator_data, arraysize(accelerator_data), this);
}
+// Use when switching internally between "shown" and "not shown" so that
+// we enter and exit overview mode appropriately
+void HomeCardImpl::SetStateAndOverview(HomeCard::State state) {
Jun Mukai 2014/09/25 21:53:41 This method name is unclear. SetStateAndToggleOve
Greg Levin 2014/10/02 21:56:09 Done (mostly... see below)
+ if (state_ == state)
+ return;
+
+ bool show = (state == VISIBLE_BOTTOM || state == VISIBLE_CENTERED);
+ if (show == WindowManager::GetInstance()->IsOverviewModeActive()) {
+ SetState(state); // overview mode already matches state
+ } else {
+ overview_state_ = state;
+ WindowManager::GetInstance()->ToggleOverview();
+ }
+}
+
void HomeCardImpl::SetState(HomeCard::State state) {
if (state_ == state)
return;
@@ -368,9 +384,9 @@ bool HomeCardImpl::OnAcceleratorFired(int command_id,
DCHECK_EQ(COMMAND_SHOW_HOME_CARD, command_id);
if (state_ == VISIBLE_CENTERED && original_state_ != VISIBLE_BOTTOM)
- SetState(VISIBLE_MINIMIZED);
+ SetStateAndOverview(VISIBLE_MINIMIZED);
else if (state_ == VISIBLE_MINIMIZED)
- SetState(VISIBLE_CENTERED);
+ SetStateAndOverview(VISIBLE_CENTERED);
return true;
}
@@ -415,11 +431,12 @@ void HomeCardImpl::OnGestureProgressed(
void HomeCardImpl::OnOverviewModeEnter() {
if (state_ == HIDDEN || state_ == VISIBLE_MINIMIZED)
- SetState(VISIBLE_BOTTOM);
+ SetState(overview_state_);
Jun Mukai 2014/09/25 21:53:41 I am not sure why overview_state_ is necessary. I
Greg Levin 2014/10/02 21:56:09 ToggleOverview() was a little imprecise for use he
}
void HomeCardImpl::OnOverviewModeExit() {
SetState(VISIBLE_MINIMIZED);
+ overview_state_ = VISIBLE_BOTTOM;
}
void HomeCardImpl::OnSplitViewModeEnter() {

Powered by Google App Engine
This is Rietveld 408576698