Fix the "missing touch events" problem.

- Bias the slop regions so that it's more likely to think that you're scrolling
  than zooming.
- If it could be a scroll or a zoom, pick the scroll.
diff --git a/src/com/android/launcher2/SwipeController.java b/src/com/android/launcher2/SwipeController.java
index a900fca..fe61c2e 100644
--- a/src/com/android/launcher2/SwipeController.java
+++ b/src/com/android/launcher2/SwipeController.java
@@ -40,7 +40,8 @@
     private static final float SPRING_CONSTANT = 0.0009f;
 
     // configuration
-    private int mSlop;
+    private int mSlopX;
+    private int mSlopY;
     private float mSwipeDistance;
 
     private AllAppsView mAllAppsView;
@@ -59,7 +60,8 @@
 
     public SwipeController(Context context) {
         ViewConfiguration config = ViewConfiguration.get(context);
-        mSlop = config.getScaledTouchSlop();
+        mSlopX = config.getScaledTouchSlop();
+        mSlopY = 3 * mSlopX / 2; // make it 50% more biased towards horizontal swiping.
         
         DisplayMetrics display = context.getResources().getDisplayMetrics();
         mSwipeDistance = display.heightPixels / 2; // one half of the screen
@@ -130,12 +132,11 @@
 
         case MotionEvent.ACTION_MOVE:
             if (!mCanceled && !mTracking) {
-                if (Math.abs(deltaX) > mSlop) {
+                if (Math.abs(deltaX) > mSlopX) {
                     mCanceled = true;
                     mTracking = false;
                     mAllAppsView.setZoomSwipeInProgress(false, true);
-                }
-                if (Math.abs(deltaY) > mSlop) {
+                } else if (Math.abs(deltaY) > mSlopY) {
                     mTracking = true;
                 }
             }