Index: views/controls/textfield/native_textfield_views.cc |
diff --git a/views/controls/textfield/native_textfield_views.cc b/views/controls/textfield/native_textfield_views.cc |
index 810bad1d3c4c715f107cae0632cf7b5812960e83..c14463ef52fee75ca50b9b537a4449f0f017b11a 100644 |
--- a/views/controls/textfield/native_textfield_views.cc |
+++ b/views/controls/textfield/native_textfield_views.cc |
@@ -861,11 +861,18 @@ bool NativeTextfieldViews::HandleKeyEvent(const KeyEvent& key_event) { |
cursor_changed = true; |
break; |
case ui::VKEY_END: |
- model_->MoveCursorRight(gfx::LINE_BREAK, selection); |
- cursor_changed = true; |
- break; |
case ui::VKEY_HOME: |
- model_->MoveCursorLeft(gfx::LINE_BREAK, selection); |
+ // TODO(msw): Implement RenderText::GetTextDirection for platforms. |
+ // Windows string directionality is determined by UI directionality. |
+ // Linux/ChromeOS uses the first strong directionality character. |
+#if defined(OS_WIN) |
+ if (base::i18n::IsRTL() == (key_code == ui::VKEY_HOME)) |
+#else |
+ if (key_code == ui::VKEY_END) |
+#endif |
+ model_->MoveCursorRight(gfx::LINE_BREAK, selection); |
+ else |
+ model_->MoveCursorLeft(gfx::LINE_BREAK, selection); |
cursor_changed = true; |
break; |
case ui::VKEY_BACK: |
@@ -908,7 +915,7 @@ bool NativeTextfieldViews::HandleKeyEvent(const KeyEvent& key_event) { |
cursor_changed = text_changed = model_->Delete(); |
break; |
case ui::VKEY_INSERT: |
- GetRenderText()->toggle_insert_mode(); |
+ GetRenderText()->ToggleInsertMode(); |
cursor_changed = true; |
break; |
default: |