am 946bfa49: Merge change Ida4d6ab0 into eclair-mr2
Merge commit '946bfa490a4df62bfb48e8017c329b052e3e905e' into eclair-mr2-plus-aosp * commit '946bfa490a4df62bfb48e8017c329b052e3e905e': Allows users to scroll while in select mode.
This commit is contained in:
@@ -254,6 +254,12 @@ implements MovementMethod
|
|||||||
|
|
||||||
buffer.setSpan(LAST_TAP_DOWN, offset, offset,
|
buffer.setSpan(LAST_TAP_DOWN, offset, offset,
|
||||||
Spannable.SPAN_POINT_POINT);
|
Spannable.SPAN_POINT_POINT);
|
||||||
|
|
||||||
|
// Disallow intercepting of the touch events, so that
|
||||||
|
// users can scroll and select at the same time.
|
||||||
|
// without this, users would get booted out of select
|
||||||
|
// mode once the view detected it needed to scroll.
|
||||||
|
widget.getParent().requestDisallowInterceptTouchEvent(true);
|
||||||
}
|
}
|
||||||
} else if (event.getAction() == MotionEvent.ACTION_MOVE ) {
|
} else if (event.getAction() == MotionEvent.ACTION_MOVE ) {
|
||||||
boolean cap = (MetaKeyKeyListener.getMetaState(buffer,
|
boolean cap = (MetaKeyKeyListener.getMetaState(buffer,
|
||||||
@@ -277,7 +283,7 @@ implements MovementMethod
|
|||||||
int spanstart;
|
int spanstart;
|
||||||
int spanend;
|
int spanend;
|
||||||
if (offset >= lastDownOffset) {
|
if (offset >= lastDownOffset) {
|
||||||
// expand to from word start of the original tap to new word
|
// Expand from word start of the original tap to new word
|
||||||
// end, since we are selecting "forwards"
|
// end, since we are selecting "forwards"
|
||||||
spanstart = findWordStart(buffer, lastDownOffset);
|
spanstart = findWordStart(buffer, lastDownOffset);
|
||||||
spanend = findWordEnd(buffer, offset);
|
spanend = findWordEnd(buffer, offset);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import android.util.Log;
|
|||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.ViewConfiguration;
|
import android.view.ViewConfiguration;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.view.KeyEvent;
|
||||||
|
|
||||||
public class Touch {
|
public class Touch {
|
||||||
private Touch() { }
|
private Touch() { }
|
||||||
@@ -139,10 +140,21 @@ public class Touch {
|
|||||||
|
|
||||||
if (ds[0].mFarEnough) {
|
if (ds[0].mFarEnough) {
|
||||||
ds[0].mUsed = true;
|
ds[0].mUsed = true;
|
||||||
|
boolean cap = (MetaKeyKeyListener.getMetaState(buffer,
|
||||||
float dx = ds[0].mX - event.getX();
|
KeyEvent.META_SHIFT_ON) == 1) ||
|
||||||
float dy = ds[0].mY - event.getY();
|
(MetaKeyKeyListener.getMetaState(buffer,
|
||||||
|
MetaKeyKeyListener.META_SELECTING) != 0);
|
||||||
|
float dx;
|
||||||
|
float dy;
|
||||||
|
if (cap) {
|
||||||
|
// if we're selecting, we want the scroll to go in
|
||||||
|
// the direction of the drag
|
||||||
|
dx = event.getX() - ds[0].mX;
|
||||||
|
dy = event.getY() - ds[0].mY;
|
||||||
|
} else {
|
||||||
|
dx = ds[0].mX - event.getX();
|
||||||
|
dy = ds[0].mY - event.getY();
|
||||||
|
}
|
||||||
ds[0].mX = event.getX();
|
ds[0].mX = event.getX();
|
||||||
ds[0].mY = event.getY();
|
ds[0].mY = event.getY();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user