Chromium Code Reviews| Index: ui/views/controls/textfield/textfield.cc |
| diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc |
| index 74d18b70564e2ea7e60de96e11fb9c83c41cfb45..f65ffa4316436791a6ff04e42a50d818f813864f 100644 |
| --- a/ui/views/controls/textfield/textfield.cc |
| +++ b/ui/views/controls/textfield/textfield.cc |
| @@ -40,6 +40,7 @@ |
| #include "ui/views/metrics.h" |
| #include "ui/views/native_cursor.h" |
| #include "ui/views/painter.h" |
| +#include "ui/views/style/platform_style.h" |
| #include "ui/views/views_delegate.h" |
| #include "ui/views/widget/widget.h" |
| @@ -1746,7 +1747,20 @@ void Textfield::MoveCursorTo(const gfx::Point& point, bool select) { |
| void Textfield::SelectThroughLastDragLocation() { |
| OnBeforeUserAction(); |
| - model_->MoveCursorTo(last_drag_location_, true); |
| + |
| + const bool drags_to_end = PlatformStyle::kTextfieldDragVerticallyDragsToEnd; |
| + if (drags_to_end && last_drag_location_.y() < 0) { |
| + model_->MoveCursor(gfx::BreakType::LINE_BREAK, |
| + gfx::VisualCursorDirection::CURSOR_LEFT, |
| + true); |
|
tapted
2016/04/11 06:57:26
nit: git cl format puts this `true` on the previou
Elly Fong-Jones
2016/04/14 19:47:10
Done.
|
| + } else if (drags_to_end && last_drag_location_.y() > height()) { |
| + model_->MoveCursor(gfx::BreakType::LINE_BREAK, |
| + gfx::VisualCursorDirection::CURSOR_RIGHT, |
| + true); |
| + } else { |
| + model_->MoveCursorTo(last_drag_location_, true); |
| + } |
| + |
| if (aggregated_clicks_ == 1) { |
| model_->SelectWord(); |
| // Expand the selection so the initially selected word remains selected. |