Commit 42d3c3dc authored by wutao's avatar wutao Committed by Commit Bot

Fix alt-tab on fullscreen task manager

Currently for fullscreen window, Ash lets the browser or apps to process
the accelerator first. However, focus_manager handles "alt-tab" as a
"Tab" traversal key event. This cl fixes this bug.

Bug: 832739
Test: New test FocusManagerTest.IsTabTraversalKeyEvent
Change-Id: I6252a5614390223c581d032d39dbad1c84de6b48
Reviewed-on: https://chromium-review.googlesource.com/1014651
Commit-Queue: Tao Wu <wutao@chromium.org>
Reviewed-by: default avatarMichael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551377}
parent 05e28044
......@@ -485,7 +485,8 @@ bool FocusManager::HasPriorityHandler(
// static
bool FocusManager::IsTabTraversalKeyEvent(const ui::KeyEvent& key_event) {
return key_event.key_code() == ui::VKEY_TAB && !key_event.IsControlDown();
return key_event.key_code() == ui::VKEY_TAB &&
(!key_event.IsControlDown() && !key_event.IsAltDown());
}
void FocusManager::ViewRemoved(View* removed) {
......
......@@ -913,4 +913,19 @@ TEST_F(FocusManagerTest, AdvanceFocusStaysInWidget) {
EXPECT_EQ(widget_view, GetFocusManager()->GetFocusedView());
}
// Verifies if a key event is a tab traversal key event or not.
TEST_F(FocusManagerTest, IsTabTraversalKeyEvent) {
ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_TAB, ui::EF_NONE);
EXPECT_TRUE(FocusManager::IsTabTraversalKeyEvent(event));
event = ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_TAB, ui::EF_SHIFT_DOWN);
EXPECT_TRUE(FocusManager::IsTabTraversalKeyEvent(event));
event = ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_TAB, ui::EF_CONTROL_DOWN);
EXPECT_FALSE(FocusManager::IsTabTraversalKeyEvent(event));
event = ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_TAB, ui::EF_ALT_DOWN);
EXPECT_FALSE(FocusManager::IsTabTraversalKeyEvent(event));
}
} // namespace views
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment