Merge change If1f0bf33 into eclair

* changes:
  Some work on issue #2286804: sometimes text field doesn't accept input
This commit is contained in:
Android (Google) Code Review
2009-12-02 16:17:54 -08:00
2 changed files with 12 additions and 5 deletions

View File

@@ -20,6 +20,7 @@ import android.text.Layout;
import android.text.NoCopySpan;
import android.text.Layout.Alignment;
import android.text.Spannable;
import android.util.Log;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
import android.widget.TextView;
@@ -156,8 +157,17 @@ public class Touch {
padding));
ny = Math.max(ny, 0);
int oldX = widget.getScrollX();
int oldY = widget.getScrollY();
scrollTo(widget, layout, nx, ny);
widget.cancelLongPress();
// If we actually scrolled, then cancel the up action.
if (oldX != widget.getScrollX()
|| oldY != widget.getScrollY()) {
widget.cancelLongPress();
}
return true;
}
}

View File

@@ -6529,6 +6529,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
// Reset this state; it will be re-set if super.onTouchEvent
// causes focus to move to the view.
mTouchFocusSelected = false;
mScrolled = false;
}
final boolean superResult = super.onTouchEvent(event);
@@ -6545,10 +6546,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
if ((mMovement != null || onCheckIsTextEditor()) && mText instanceof Spannable && mLayout != null) {
if (action == MotionEvent.ACTION_DOWN) {
mScrolled = false;
}
boolean handled = false;
int oldSelStart = Selection.getSelectionStart(mText);