summaryrefslogtreecommitdiffstats
path: root/athena
diff options
context:
space:
mode:
authormukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-24 11:18:10 +0000
committermukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-24 11:18:10 +0000
commitfa86e4f7bebd6466e191ec557f6e5a5c33b28244 (patch)
tree58d1e678f9da657b89cbfa309bb0d5a19fbba06b /athena
parentbf0505800e3603415090d92243339f0dc540cc5d (diff)
downloadchromium_src-fa86e4f7bebd6466e191ec557f6e5a5c33b28244.zip
chromium_src-fa86e4f7bebd6466e191ec557f6e5a5c33b28244.tar.gz
chromium_src-fa86e4f7bebd6466e191ec557f6e5a5c33b28244.tar.bz2
Fixes the home card state transition for Ctrl-L.
- do not hide, toggle between minimized and centered. - do nothing for other status. Haven't looked deeply but this also fixes crbug.com/396401 BUG=396401 R=oshima@chromium.org TEST=manually Review URL: https://codereview.chromium.org/415723002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285188 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'athena')
-rw-r--r--athena/home/home_card_impl.cc7
-rw-r--r--athena/home/home_card_unittest.cc28
2 files changed, 32 insertions, 3 deletions
diff --git a/athena/home/home_card_impl.cc b/athena/home/home_card_impl.cc
index 7718b38..df3b0f6 100644
--- a/athena/home/home_card_impl.cc
+++ b/athena/home/home_card_impl.cc
@@ -183,10 +183,11 @@ class HomeCardImpl : public HomeCard,
virtual bool OnAcceleratorFired(int command_id,
const ui::Accelerator& accelerator) OVERRIDE {
DCHECK_EQ(COMMAND_SHOW_HOME_CARD, command_id);
- if (state_ == HIDDEN)
+
+ if (state_ == VISIBLE_CENTERED && original_state_ != VISIBLE_BOTTOM)
+ SetState(VISIBLE_MINIMIZED);
+ else if (state_ == VISIBLE_MINIMIZED)
SetState(VISIBLE_CENTERED);
- else
- SetState(HIDDEN);
return true;
}
diff --git a/athena/home/home_card_unittest.cc b/athena/home/home_card_unittest.cc
index 465cba3..dbfd0ad 100644
--- a/athena/home/home_card_unittest.cc
+++ b/athena/home/home_card_unittest.cc
@@ -8,6 +8,7 @@
#include "athena/activity/public/activity_manager.h"
#include "athena/test/athena_test_base.h"
#include "athena/wm/public/window_manager.h"
+#include "ui/aura/test/event_generator.h"
namespace athena {
@@ -62,4 +63,31 @@ TEST_F(HomeCardTest, AppSelection) {
WindowManager::GetInstance()->ToggleOverview();
}
+TEST_F(HomeCardTest, Accelerators) {
+ EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState());
+
+ aura::test::EventGenerator generator(root_window());
+ generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN);
+ EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState());
+
+ generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN);
+ EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState());
+
+ // Do nothing for BOTTOM.
+ WindowManager::GetInstance()->ToggleOverview();
+ EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState());
+ generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN);
+ EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState());
+
+ // Do nothing if the centered state is a temporary state.
+ HomeCard::Get()->UpdateVirtualKeyboardBounds(gfx::Rect(0, 0, 100, 100));
+ EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState());
+ generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN);
+ EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState());
+
+ // Overview mode has to finish before ending test, otherwise it crashes.
+ // TODO(mukai): fix this.
+ WindowManager::GetInstance()->ToggleOverview();
+}
+
} // namespace athena