From cf68fee06da3c1e238c0fcbeac40fd6385d15e93 Mon Sep 17 00:00:00 2001 From: Gilles Debunne Date: Thu, 29 Sep 2011 10:55:36 -0700 Subject: [PATCH] Bug 5254884: suggestions are no logner copied in the clipboard Change-Id: I621c5b4da4252876b0f424e895a4e19e2a4dda50 --- core/java/android/widget/TextView.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index cde36c83ee9c0..899da3384c8b4 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -9188,19 +9188,23 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return true; case ID_CUT: - setPrimaryClip(ClipData.newPlainText(null, mTransformed.subSequence(min, max))); + setPrimaryClip(ClipData.newPlainText(null, getTransformedText(min, max))); ((Editable) mText).delete(min, max); stopSelectionActionMode(); return true; case ID_COPY: - setPrimaryClip(ClipData.newPlainText(null, mTransformed.subSequence(min, max))); + setPrimaryClip(ClipData.newPlainText(null, getTransformedText(min, max))); stopSelectionActionMode(); return true; } return false; } + private CharSequence getTransformedText(int start, int end) { + return removeSuggestionSpans(mTransformed.subSequence(start, end)); + } + /** * Prepare text so that there are not zero or two spaces at beginning and end of region defined * by [min, max] when replacing this region by paste. @@ -9317,7 +9321,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // Start a drag final int start = getSelectionStart(); final int end = getSelectionEnd(); - CharSequence selectedText = mTransformed.subSequence(start, end); + CharSequence selectedText = getTransformedText(start, end); ClipData data = ClipData.newPlainText(null, selectedText); DragLocalState localState = new DragLocalState(this, start, end); startDrag(data, getTextThumbnailBuilder(selectedText), localState, 0);