diff options
author | ajith.v@samsung.com <ajith.v@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-21 13:14:44 +0000 |
---|---|---|
committer | ajith.v@samsung.com <ajith.v@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-21 13:14:44 +0000 |
commit | b141a73f403b9767ae5cd33fc233f0784fd0365c (patch) | |
tree | 6e0e82c06209d1aebd66cfbab249b3a63a18e546 /content/public | |
parent | 4bf8ad4dfb0c652dcd085b81bd334b3883b0a745 (diff) | |
download | chromium_src-b141a73f403b9767ae5cd33fc233f0784fd0365c.zip chromium_src-b141a73f403b9767ae5cd33fc233f0784fd0365c.tar.gz chromium_src-b141a73f403b9767ae5cd33fc233f0784fd0365c.tar.bz2 |
Copying text closes the keyboard and the text input gets unfocused, forcing virtual keyboard is getting closed.
During copy operation, we are clearing the selection, which is clearing the cursor
as well. Also if the rootEditable element is NULL, we are not setting the textInputType
for ImeAdapter, which force ImeAdapter to dismiss the keyboard.
Now converted the Range selection to caret selection to keep cursor and caret visible, so
that user can continue editing.
BUG=225090
Review URL: https://codereview.chromium.org/330623002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278954 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/public')
-rw-r--r-- | content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java | 9 | ||||
-rw-r--r-- | content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java | 17 |
2 files changed, 25 insertions, 1 deletions
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java index 0e2bc26..407d7e0 100644 --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java @@ -2106,7 +2106,14 @@ public class ContentViewCore @Override public void onDestroyActionMode() { mActionMode = null; - if (mUnselectAllOnActionModeDismiss) mImeAdapter.unselect(); + if (mUnselectAllOnActionModeDismiss) { + if (isSelectionEditable()) { + int selectionEnd = Selection.getSelectionEnd(mEditable); + mInputConnection.setSelection(selectionEnd, selectionEnd); + } else { + mImeAdapter.unselect(); + } + } getContentViewClient().onContextualActionBarHidden(); } diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java index bd9d98d..9048bfe 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java @@ -11,6 +11,7 @@ import android.content.Context; import android.test.suitebuilder.annotation.MediumTest; import android.test.suitebuilder.annotation.SmallTest; import android.text.Editable; +import android.text.Selection; import android.text.TextUtils; import android.view.KeyEvent; import android.view.View; @@ -144,6 +145,22 @@ public class ImeTest extends ContentShellTestBase { @SmallTest @Feature({"TextInput"}) + public void testKeyboardNotDismissedAfterCopySelection() throws Exception { + commitText(mConnection, "Sample Text", 1); + waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 1, + "Sample Text", 11, 11, -1, -1); + DOMUtils.clickNode(this, mContentViewCore, "input_text"); + assertWaitForKeyboardStatus(true); + DOMUtils.longPressNode(this, mContentViewCore, "input_text"); + selectAll(mImeAdapter); + copy(mImeAdapter); + assertWaitForKeyboardStatus(true); + assertEquals(11, Selection.getSelectionEnd(mContentViewCore.getEditableForTest())); + assertEquals(11, Selection.getSelectionEnd(mContentViewCore.getEditableForTest())); + } + + @SmallTest + @Feature({"TextInput"}) public void testImeCut() throws Exception { commitText(mConnection, "snarful", 1); waitAndVerifyEditableCallback(mConnection.mImeUpdateQueue, 1, "snarful", 7, 7, -1, -1); |