summaryrefslogtreecommitdiffstats
path: root/content/public
diff options
context:
space:
mode:
authorajith.v@samsung.com <ajith.v@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-21 13:14:44 +0000
committerajith.v@samsung.com <ajith.v@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-21 13:14:44 +0000
commitb141a73f403b9767ae5cd33fc233f0784fd0365c (patch)
tree6e0e82c06209d1aebd66cfbab249b3a63a18e546 /content/public
parent4bf8ad4dfb0c652dcd085b81bd334b3883b0a745 (diff)
downloadchromium_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.java9
-rw-r--r--content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java17
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);