summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Josep del Río <joseprio@google.com> 2023-03-14 11:46:57 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-03-14 11:46:57 +0000
commita7b390fe6ecbf8c82b28e2271f564e9844b3b5ff (patch)
tree123c2f18e3e300f313055e7eaf2b87e594ec72bf
parentea947c426d38ba0f6cc9918dff76d91c603e7a92 (diff)
parent20900a788f8b946210b2875013b9442aa09041c3 (diff)
Merge "Exit active mode on Escape key" into udc-dev
-rw-r--r--core/java/android/text/method/QwertyKeyListener.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/text/method/QwertyKeyListener.java b/core/java/android/text/method/QwertyKeyListener.java
index b4a1e8cfe943..c43864d0f215 100644
--- a/core/java/android/text/method/QwertyKeyListener.java
+++ b/core/java/android/text/method/QwertyKeyListener.java
@@ -362,6 +362,15 @@ public class QwertyKeyListener extends BaseKeyListener {
return true;
}
+ } else if (keyCode == KeyEvent.KEYCODE_ESCAPE && event.hasNoModifiers()) {
+ // If user is in the process of composing with a dead key, and
+ // presses Escape, cancel it. We need special handling because
+ // the Escape key will not produce a Unicode character
+ if (activeStart == selStart && activeEnd == selEnd) {
+ Selection.setSelection(content, selEnd);
+ content.removeSpan(TextKeyListener.ACTIVE);
+ return true;
+ }
}
return super.onKeyDown(view, content, keyCode, event);