From 145252f84027babc196a44ae6ff3debbf763ca30 Mon Sep 17 00:00:00 2001 From: Seigo Nonaka Date: Thu, 25 Jun 2015 22:27:12 +0900 Subject: [PATCH] Do not show selection action mode when the TextView is not shown. OnPreDraw is called even if the View is not visible. So need to check isShown() and hasWindowFocus() before calling starting selection action mode. This hack is originally introduced for keeping selection on device rotation. I manually verified this issue does not revive with this CL. Bug: 22036870 Change-Id: I814db6165e2345fcacedcbd399c1a3985501c8fd --- core/java/android/widget/TextView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 207605e316e48..98d3a1fa853da 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -5231,7 +5231,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // ExtractEditText does not call onFocus when it is displayed, and mHasSelectionOnFocus can // not be set. Do the test here instead. if (isInExtractedMode() && hasSelection() && mEditor != null - && mEditor.mTextActionMode == null) { + && mEditor.mTextActionMode == null && isShown() && hasWindowFocus()) { mEditor.startSelectionActionMode(); }