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

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlBar.java

Issue 1170363003: Do not update the url text while in batch edit mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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: chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlBar.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlBar.java
index 142406f80cb397f5322ca0b5651a5ea350618f86..7a8b652d012928f7cf9bc6bd34acb36d97aec1e9 100644
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlBar.java
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlBar.java
@@ -109,6 +109,8 @@ public class UrlBar extends VerticallyFixedEditText {
private long mFirstFocusTimeMs;
+ private boolean mInBatchEditMode;
+
/**
* Implement this to get updates when the direction of the text in the URL bar changes.
* E.g. If the user is typing a URL, then erases it and starts typing a query in Arabic,
@@ -272,6 +274,14 @@ public class UrlBar extends VerticallyFixedEditText {
}
/**
+ * @return Whether the URL is currently in batch edit mode triggered by an IME. No external
+ * text changes should be triggered while this is true.
+ */
+ public boolean isInBatchEditMode() {
+ return mInBatchEditMode;
+ }
+
+ /**
* @return The user text without the autocomplete text.
*/
public String getTextWithoutAutocomplete() {
@@ -292,7 +302,25 @@ public class UrlBar extends VerticallyFixedEditText {
}
@Override
+ public void onBeginBatchEdit() {
+ super.onBeginBatchEdit();
+ mInBatchEditMode = true;
+ }
+
+ @Override
+ public void onEndBatchEdit() {
+ super.onEndBatchEdit();
+ mInBatchEditMode = false;
+ validateSelection(getSelectionStart(), getSelectionEnd());
+ }
+
+ @Override
protected void onSelectionChanged(int selStart, int selEnd) {
+ if (!mInBatchEditMode) validateSelection(selStart, selEnd);
+ super.onSelectionChanged(selStart, selEnd);
+ }
+
+ private void validateSelection(int selStart, int selEnd) {
int spanStart = getText().getSpanStart(mAutocompleteSpan);
int spanEnd = getText().getSpanEnd(mAutocompleteSpan);
if (spanStart >= 0 && (spanStart != selStart || spanEnd != selEnd)) {
@@ -309,7 +337,6 @@ public class UrlBar extends VerticallyFixedEditText {
// alone. See crbug/273763 for more details.
if (selEnd <= spanStart) getText().delete(spanStart, getText().length());
}
- super.onSelectionChanged(selStart, selEnd);
}
@Override
@@ -781,6 +808,7 @@ public class UrlBar extends VerticallyFixedEditText {
}
}
+ @VisibleForTesting
InputConnectionWrapper mInputConnection = new InputConnectionWrapper(null, true) {
private final char[] mTempSelectionChar = new char[1];

Powered by Google App Engine
This is Rietveld 408576698