Fix moving points in the Curves editor

bug:7632994
Change-Id: Ibd0b22594ad9be52e32ea860976861e4619fb513
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
index c4ca900..4055248 100644
--- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
+++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
@@ -43,6 +43,7 @@
     private boolean mDidAddPoint = false;
     private boolean mDidDelete = false;
     private ControlPoint mCurrentControlPoint = null;
+    private int mCurrentPick = -1;
     private ImagePreset mLastPreset = null;
     int[] redHistogram = new int[256];
     int[] greenHistogram = new int[256];
@@ -186,6 +187,7 @@
 
         if (e.getActionMasked() == MotionEvent.ACTION_UP) {
             mCurrentControlPoint = null;
+            mCurrentPick = -1;
             updateCachedImage();
             mDidAddPoint = false;
             if (mDidDelete) {
@@ -205,8 +207,9 @@
         }
 
         Spline spline = getSpline(mCurrentCurveIndex);
-        int pick = pickControlPoint(posX, posY);
+        int pick = mCurrentPick;
         if (mCurrentControlPoint == null) {
+            pick = pickControlPoint(posX, posY);
             if (pick == -1) {
                 mCurrentControlPoint = new ControlPoint(posX, posY);
                 pick = spline.addPoint(mCurrentControlPoint);
@@ -214,6 +217,7 @@
             } else {
                 mCurrentControlPoint = spline.getPoint(pick);
             }
+            mCurrentPick = pick;
         }
 
         if (spline.isPointContained(posX, pick)) {