diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java
index 9499935..7ee3026 100644
--- a/src/com/android/launcher2/AllAppsView.java
+++ b/src/com/android/launcher2/AllAppsView.java
@@ -482,9 +482,11 @@
         private Resources mRes;
         private Script mScript;
         private Script.Invokable mInvokeMove;
+        private Script.Invokable mInvokeMoveTo;
         private Script.Invokable mInvokeFling;
         private Script.Invokable mInvokeResetWAR;
 
+
         private ProgramStore mPSIcons;
         private ProgramStore mPSText;
         private ProgramFragment mPFColor;
@@ -570,6 +572,7 @@
             public int selectedIconTexture;
             public float zoomTarget;
             public int homeButtonId;
+            public float targetPos;
 
             State() {
                 mType = Type.createFromClass(mRS, State.class, 1, "StateClass");
@@ -743,6 +746,7 @@
             sb.setType(mState.mType, "state", Defines.ALLOC_STATE);
             mInvokeMove = sb.addInvokable("move");
             mInvokeFling = sb.addInvokable("fling");
+            mInvokeMoveTo = sb.addInvokable("moveTo");
             mInvokeResetWAR = sb.addInvokable("resetHWWar");
             mScript = sb.create();
             mScript.setClearColor(0.0f, 0.0f, 0.0f, 0.0f);
@@ -937,6 +941,12 @@
             mInvokeMove.execute();
         }
 
+        void moveTo(float row) {
+            mState.targetPos = row;
+            mState.save();
+            mInvokeMoveTo.execute();
+        }
+
         /**
          * You need to call save() on mState on your own after calling this.
          *
