Index: content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java b/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java |
index 249a37b825d7c88acb118d732c8d7d714fab5c06..6333b7818c6b4a9defeaa0aebec32e9fc3e50d5c 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java |
@@ -83,9 +83,7 @@ public class AdapterInputConnection extends BaseInputConnection { |
} |
} else if (inputType == TextInputType.TEXT_AREA |
|| inputType == TextInputType.CONTENT_EDITABLE) { |
- // TextArea or contenteditable. |
- outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE |
- | EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES; |
+ outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE; |
if ((inputFlags & WebTextInputFlags.AutocorrectOff) == 0) { |
outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT; |
} |
@@ -122,6 +120,23 @@ public class AdapterInputConnection extends BaseInputConnection { |
| InputType.TYPE_NUMBER_FLAG_DECIMAL; |
outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT; |
} |
+ |
+ // Handling of autocapitalize. Blink will send the flag taking into account the element's |
+ // type. This is not using AutocapitalizeNone because Android does not autocapitalize by |
+ // default and there is no way to express no capitalization. |
+ // Autocapitalize is meant as a hint to the virtual keyboard. |
+ if ((inputFlags & WebTextInputFlags.AutocapitalizeCharacters) != 0) { |
+ outAttrs.inputType |= InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS; |
+ } else if ((inputFlags & WebTextInputFlags.AutocapitalizeWords) != 0) { |
+ outAttrs.inputType |= InputType.TYPE_TEXT_FLAG_CAP_WORDS; |
+ } else if ((inputFlags & WebTextInputFlags.AutocapitalizeSentences) != 0) { |
+ outAttrs.inputType |= InputType.TYPE_TEXT_FLAG_CAP_SENTENCES; |
+ } |
+ // Content editable doesn't use autocapitalize so we need to set it manually. |
+ if (inputType == TextInputType.CONTENT_EDITABLE) { |
+ outAttrs.inputType |= InputType.TYPE_TEXT_FLAG_CAP_SENTENCES; |
+ } |
+ |
outAttrs.initialSelStart = Selection.getSelectionStart(mEditable); |
outAttrs.initialSelEnd = Selection.getSelectionEnd(mEditable); |
mLastUpdateSelectionStart = outAttrs.initialSelStart; |