Commit 0c03ac76 authored by Justin Donnelly's avatar Justin Donnelly Committed by Commit Bot

[omnibox] Don't handle shift-up/down, let Textfield handle it instead.

Textfield creates partial selections from the point of the cursor on
shift-up/down.

Bug: 892216
Change-Id: I3196972dea1abeb5ffbf2d4381d27ca067e41bc6
Reviewed-on: https://chromium-review.googlesource.com/c/1276849Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Justin Donnelly <jdonnelly@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599788}
parent a82aa936
...@@ -1277,10 +1277,10 @@ bool OmniboxViewViews::HandleKeyEvent(views::Textfield* textfield, ...@@ -1277,10 +1277,10 @@ bool OmniboxViewViews::HandleKeyEvent(views::Textfield* textfield,
break; break;
case ui::VKEY_UP: case ui::VKEY_UP:
#if defined(OS_MACOSX) // Shift-up is handled by the text field class to enable text selection.
if (shift) if (shift)
return false; return false;
#endif
if (IsTextEditCommandEnabled(ui::TextEditCommand::MOVE_UP)) { if (IsTextEditCommandEnabled(ui::TextEditCommand::MOVE_UP)) {
ExecuteTextEditCommand(ui::TextEditCommand::MOVE_UP); ExecuteTextEditCommand(ui::TextEditCommand::MOVE_UP);
return true; return true;
...@@ -1288,10 +1288,10 @@ bool OmniboxViewViews::HandleKeyEvent(views::Textfield* textfield, ...@@ -1288,10 +1288,10 @@ bool OmniboxViewViews::HandleKeyEvent(views::Textfield* textfield,
break; break;
case ui::VKEY_DOWN: case ui::VKEY_DOWN:
#if defined(OS_MACOSX) // Shift-down is handled by the text field class to enable text selection.
if (shift) if (shift)
return false; return false;
#endif
if (IsTextEditCommandEnabled(ui::TextEditCommand::MOVE_DOWN)) { if (IsTextEditCommandEnabled(ui::TextEditCommand::MOVE_DOWN)) {
ExecuteTextEditCommand(ui::TextEditCommand::MOVE_DOWN); ExecuteTextEditCommand(ui::TextEditCommand::MOVE_DOWN);
return true; return true;
......
...@@ -363,8 +363,8 @@ TEST_F(OmniboxViewViewsTest, ScheduledTextEditCommand) { ...@@ -363,8 +363,8 @@ TEST_F(OmniboxViewViewsTest, ScheduledTextEditCommand) {
scheduled_text_edit_command()); scheduled_text_edit_command());
} }
// Test that pressing Shift+Up on Mac is not captured and lets selection mode // Test that Shift+Up and Shift+Down are not captured and let selection mode
// take over. Test for crbug.com/863543. // take over. Test for crbug.com/863543 and crbug.com/892216.
TEST_F(OmniboxViewViewsTest, SelectWithShift_863543) { TEST_F(OmniboxViewViewsTest, SelectWithShift_863543) {
const base::string16 text = const base::string16 text =
base::ASCIIToUTF16("http://www.example.com/?query=1"); base::ASCIIToUTF16("http://www.example.com/?query=1");
...@@ -375,12 +375,23 @@ TEST_F(OmniboxViewViewsTest, SelectWithShift_863543) { ...@@ -375,12 +375,23 @@ TEST_F(OmniboxViewViewsTest, SelectWithShift_863543) {
ui::EF_SHIFT_DOWN); ui::EF_SHIFT_DOWN);
omnibox_textfield()->OnKeyEvent(&shift_up_pressed); omnibox_textfield()->OnKeyEvent(&shift_up_pressed);
#if defined(OS_MACOSX) size_t start, end;
// TODO(ellyjones): find a way to test that the correct text is selected omnibox_view()->GetSelectionBounds(&start, &end);
EXPECT_EQ(23U, start);
EXPECT_EQ(0U, end);
omnibox_view()->CheckUpdatePopupNotCalled();
static_cast<OmniboxView*>(omnibox_view())
->SetWindowTextAndCaretPos(text, 18U, false, false);
ui::KeyEvent shift_down_pressed(ui::ET_KEY_PRESSED, ui::VKEY_DOWN,
ui::EF_SHIFT_DOWN);
omnibox_textfield()->OnKeyEvent(&shift_down_pressed);
omnibox_view()->GetSelectionBounds(&start, &end);
EXPECT_EQ(18U, start);
EXPECT_EQ(31U, end);
omnibox_view()->CheckUpdatePopupNotCalled(); omnibox_view()->CheckUpdatePopupNotCalled();
#else
omnibox_view()->CheckUpdatePopupCallInfo(1, text, Range(23));
#endif
} }
TEST_F(OmniboxViewViewsTest, OnBlur) { TEST_F(OmniboxViewViewsTest, OnBlur) {
......
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