Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/input/ThreadedInputConnection.java

Issue 2323983003: DO NOT SUBMIT: Bundle IME-related messages into one for batch edit (Closed)
Patch Set: fixed nits and fixed blimp test Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/input/ThreadedInputConnection.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/ThreadedInputConnection.java b/content/public/android/java/src/org/chromium/content/browser/input/ThreadedInputConnection.java
index 2bcd30a2d52d7eeb529e397bd0adee5237b9e1c0..ce538f30de91981503d8b941236a121f04b32e72 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/ThreadedInputConnection.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/ThreadedInputConnection.java
@@ -66,6 +66,20 @@ public class ThreadedInputConnection extends BaseInputConnection
}
};
+ private final Runnable mBeginBatchEdit = new Runnable() {
+ @Override
+ public void run() {
+ mImeAdapter.beginBatchEdit();
+ }
+ };
+
+ private final Runnable mEndBatchEdit = new Runnable() {
+ @Override
+ public void run() {
+ mImeAdapter.endBatchEdit();
+ }
+ };
+
private final Runnable mRequestTextInputStateUpdate = new Runnable() {
@Override
public void run() {
@@ -197,7 +211,6 @@ public class ThreadedInputConnection extends BaseInputConnection
private void updateSelection(TextInputState textInputState) {
if (textInputState == null) return;
assertOnImeThread();
- if (mNumNestedBatchEdits != 0) return;
Range selection = textInputState.selection();
Range composition = textInputState.composition();
mImeAdapter.updateSelection(
@@ -375,6 +388,9 @@ public class ThreadedInputConnection extends BaseInputConnection
if (DEBUG_LOGS) Log.w(TAG, "beginBatchEdit [%b]", (mNumNestedBatchEdits == 0));
assertOnImeThread();
mNumNestedBatchEdits++;
+ if (mNumNestedBatchEdits == 1) {
+ ThreadUtils.postOnUiThread(mBeginBatchEdit);
+ }
return true;
}
@@ -388,7 +404,7 @@ public class ThreadedInputConnection extends BaseInputConnection
--mNumNestedBatchEdits;
if (DEBUG_LOGS) Log.w(TAG, "endBatchEdit [%b]", (mNumNestedBatchEdits == 0));
if (mNumNestedBatchEdits == 0) {
- updateSelection(requestAndWaitForTextInputState());
+ ThreadUtils.postOnUiThread(mEndBatchEdit);
}
return mNumNestedBatchEdits != 0;
}

Powered by Google App Engine
This is Rietveld 408576698