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 092ffbee345c5ffeb93623e852d05c5e1920f9ca..a494989f0df558541acf7d9d113475f57464a741 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 |
@@ -67,10 +67,22 @@ public class AdapterInputConnection extends BaseInputConnection { |
| EditorInfo.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT; |
int inputType = imeAdapter.getTextInputType(); |
+ int inputMode = imeAdapter.getTextInputMode(); |
int inputFlags = imeAdapter.getTextInputFlags(); |
+ boolean autoCapSet = false; |
if ((inputFlags & imeAdapter.sTextInputFlagAutocompleteOff) != 0) { |
outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS; |
} |
+ if (inputMode == imeAdapter.sTextInputModeLatinProse) { |
+ outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES; |
+ autoCapSet = true; |
+ } else if (inputMode == imeAdapter.sTextInputModeLatinName) { |
+ outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_CAP_WORDS; |
+ autoCapSet = true; |
+ } else if (inputMode == imeAdapter.sTextInputModeVerbatim) { |
+ // Default is to capitalize nothing so no flag to set. |
+ autoCapSet = true; |
+ } |
if (inputType == ImeAdapter.sTextInputTypeText) { |
// Normal text field |
@@ -81,8 +93,10 @@ public class AdapterInputConnection extends BaseInputConnection { |
} else if (inputType == ImeAdapter.sTextInputTypeTextArea |
|| inputType == ImeAdapter.sTextInputTypeContentEditable) { |
// 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 (!autoCapSet) { |
+ outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES; |
+ } |
if ((inputFlags & imeAdapter.sTextInputFlagAutocorrectOff) == 0) { |
outAttrs.inputType |= EditorInfo.TYPE_TEXT_FLAG_AUTO_CORRECT; |
} |