Commit ef3a78ab authored by Justin Donnelly's avatar Justin Donnelly Committed by Commit Bot

Enable shift-up and shift-down handling for text selection.

Bug: 892216
Change-Id: I728bde6f03e7896df093d1abb75027dba726fa47
Reviewed-on: https://chromium-review.googlesource.com/c/1269110Reviewed-by: default avatarMichael Wasserman <msw@chromium.org>
Commit-Queue: Justin Donnelly <jdonnelly@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598755}
parent 786b1994
...@@ -151,6 +151,14 @@ ui::TextEditCommand GetCommandForKeyEvent(const ui::KeyEvent& event) { ...@@ -151,6 +151,14 @@ ui::TextEditCommand GetCommandForKeyEvent(const ui::KeyEvent& event) {
return shift return shift
? ui::TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION ? ui::TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION
: ui::TextEditCommand::MOVE_TO_END_OF_LINE; : ui::TextEditCommand::MOVE_TO_END_OF_LINE;
case ui::VKEY_UP:
return shift ? ui::TextEditCommand::
MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION
: ui::TextEditCommand::INVALID_COMMAND;
case ui::VKEY_DOWN:
return shift
? ui::TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION
: ui::TextEditCommand::INVALID_COMMAND;
case ui::VKEY_BACK: case ui::VKEY_BACK:
if (!control) if (!control)
return ui::TextEditCommand::DELETE_BACKWARD; return ui::TextEditCommand::DELETE_BACKWARD;
......
...@@ -1067,27 +1067,18 @@ TEST_F(TextfieldTest, MoveUpDownAndModifySelection) { ...@@ -1067,27 +1067,18 @@ TEST_F(TextfieldTest, MoveUpDownAndModifySelection) {
textfield_->SetSelectionRange(gfx::Range(6)); textfield_->SetSelectionRange(gfx::Range(6));
// Shift+[Up/Down] on Mac should execute the command // Shift+[Up/Down] should select the text to the beginning and end of the
// MOVE_[UP/DOWN]_AND_MODIFY_SELECTION. On other platforms, textfield won't // line, respectively.
// handle these events.
SendKeyEvent(ui::VKEY_UP, true /* shift */, false /* command */); SendKeyEvent(ui::VKEY_UP, true /* shift */, false /* command */);
EXPECT_TRUE(textfield_->key_received()); EXPECT_TRUE(textfield_->key_received());
#if defined(OS_MACOSX)
EXPECT_TRUE(textfield_->key_handled()); EXPECT_TRUE(textfield_->key_handled());
EXPECT_EQ(gfx::Range(6, 0), textfield_->GetSelectedRange()); EXPECT_EQ(gfx::Range(6, 0), textfield_->GetSelectedRange());
#else
EXPECT_FALSE(textfield_->key_handled());
#endif
textfield_->clear(); textfield_->clear();
SendKeyEvent(ui::VKEY_DOWN, true /* shift */, false /* command */); SendKeyEvent(ui::VKEY_DOWN, true /* shift */, false /* command */);
EXPECT_TRUE(textfield_->key_received()); EXPECT_TRUE(textfield_->key_received());
#if defined(OS_MACOSX)
EXPECT_TRUE(textfield_->key_handled()); EXPECT_TRUE(textfield_->key_handled());
EXPECT_EQ(gfx::Range(6, 11), textfield_->GetSelectedRange()); EXPECT_EQ(gfx::Range(6, 11), textfield_->GetSelectedRange());
#else
EXPECT_FALSE(textfield_->key_handled());
#endif
textfield_->clear(); textfield_->clear();
} }
......
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