am d4d802be: Merge "Fix: Don\'t display the drag handles when focus is lost" into mnc-dev

* commit 'd4d802be39c67bf207bbb693d32c6a59c78ed3bb':
  Fix: Don't display the drag handles when focus is lost
This commit is contained in:
Mady Mellor
2015-06-25 16:03:22 +00:00
committed by Android Git Automerger
2 changed files with 20 additions and 11 deletions

View File

@@ -393,7 +393,7 @@ public class Editor {
}
mPreserveDetachedSelection = true;
hideControllers();
hideCursorAndSpanControllers();
stopTextActionMode();
mPreserveDetachedSelection = false;
mTemporaryDetach = false;
@@ -605,9 +605,9 @@ public class Editor {
}
/**
* Hides the insertion controller and stops text selection mode, hiding the selection controller
* Hides the insertion and span controllers.
*/
void hideControllers() {
void hideCursorAndSpanControllers() {
hideCursorControllers();
hideSpanControllers();
}
@@ -1104,12 +1104,12 @@ public class Editor {
// ExtractEditText goes out of focus.
final int selStart = mTextView.getSelectionStart();
final int selEnd = mTextView.getSelectionEnd();
hideControllers();
hideCursorAndSpanControllers();
stopTextActionMode();
Selection.setSelection((Spannable) mTextView.getText(), selStart, selEnd);
} else {
if (mTemporaryDetach) mPreserveDetachedSelection = true;
hideControllers();
hideCursorAndSpanControllers();
stopTextActionMode();
if (mTemporaryDetach) mPreserveDetachedSelection = false;
downgradeEasyCorrectionSpans();
@@ -1182,6 +1182,12 @@ public class Editor {
mBlink.uncancel();
makeBlink();
}
final InputMethodManager imm = InputMethodManager.peekInstance();
final boolean immFullScreen = (imm != null && imm.isFullscreenMode());
if (mSelectionModifierCursorController != null && mTextView.hasSelection()
&& !immFullScreen) {
mSelectionModifierCursorController.show();
}
} else {
if (mBlink != null) {
mBlink.cancel();
@@ -1190,7 +1196,10 @@ public class Editor {
mInputContentType.enterDown = false;
}
// Order matters! Must be done before onParentLostFocus to rely on isShowingUp
hideControllers();
hideCursorAndSpanControllers();
if (mSelectionModifierCursorController != null) {
mSelectionModifierCursorController.hide();
}
if (mSuggestionsPopupWindow != null) {
mSuggestionsPopupWindow.onParentLostFocus();
}
@@ -1913,7 +1922,7 @@ public class Editor {
void onTouchUpEvent(MotionEvent event) {
boolean selectAllGotFocus = mSelectAllOnFocus && mTextView.didTouchFocusSelect();
hideControllers();
hideCursorAndSpanControllers();
stopTextActionMode();
CharSequence text = mTextView.getText();
if (!selectAllGotFocus && text.length() > 0) {
@@ -2034,7 +2043,7 @@ public class Editor {
if (mSuggestionsPopupWindow == null) {
mSuggestionsPopupWindow = new SuggestionsPopupWindow();
}
hideControllers();
hideCursorAndSpanControllers();
stopTextActionMode();
mSuggestionsPopupWindow.show();
}

View File

@@ -6364,7 +6364,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
// This would stop a possible selection mode, but no such mode is started in case
// extracted mode will start. Some text is selected though, and will trigger an action mode
// in the extracted view.
mEditor.hideControllers();
mEditor.hideCursorAndSpanControllers();
stopTextActionMode();
}
@@ -8193,7 +8193,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
protected void onVisibilityChanged(View changedView, int visibility) {
super.onVisibilityChanged(changedView, visibility);
if (mEditor != null && visibility != VISIBLE) {
mEditor.hideControllers();
mEditor.hideCursorAndSpanControllers();
stopTextActionMode();
}
}
@@ -9645,7 +9645,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
// since we are doing so explicitlty by other means and these
// controllers interact with how selection behaves.
if (mEditor != null) {
mEditor.hideControllers();
mEditor.hideCursorAndSpanControllers();
}
CharSequence text = getIterableTextForAccessibility();
if (Math.min(start, end) >= 0 && Math.max(start, end) <= text.length()) {