Use screen-based coordinates to calculate divier bar dragging velocity
Fix: 199468325 Test: atest WMShellUnitTests Test: manual check the snapping behavior of divider bar. Change-Id: I1256dbe8cb6fbfefdfdaa15c884c2ade4029e256
This commit is contained in:
@@ -24,7 +24,6 @@ import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Property;
|
||||
import android.util.TypedValue;
|
||||
import android.view.GestureDetector;
|
||||
import android.view.InsetsSource;
|
||||
import android.view.InsetsState;
|
||||
@@ -178,10 +177,12 @@ public class DividerView extends FrameLayout implements View.OnTouchListener {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Convert to use screen-based coordinates to prevent lost track of motion events while
|
||||
// moving divider bar and calculating dragging velocity.
|
||||
event.setLocation(event.getRawX(), event.getRawY());
|
||||
final int action = event.getAction() & MotionEvent.ACTION_MASK;
|
||||
final boolean isLandscape = isLandscape();
|
||||
// Using raw xy to prevent lost track of motion events while moving divider bar.
|
||||
final int touchPos = isLandscape ? (int) event.getRawX() : (int) event.getRawY();
|
||||
final int touchPos = (int) (isLandscape ? event.getX() : event.getY());
|
||||
switch (action) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
mVelocityTracker = VelocityTracker.obtain();
|
||||
|
||||
Reference in New Issue
Block a user