Fixing issue 3272864

-requestLayout() was being called within onLayout in
 CellLayout. This resulted in some funky behaviour and the
 bug above.

Change-Id: I76b8fa3c1dc7f08c462d13e2e9dde0d7a74386c0
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index fd1f048..2ddebe7 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -949,7 +949,15 @@
 
                     if (lp.animateDrop) {
                         lp.animateDrop = false;
-                        ((Workspace) mParent).animateViewIntoPosition(child);
+
+                        // This call needs to be posted since it results in a requestLayout()
+                        // which shouldn't be called from within a layout pass (can cause a bad
+                        // state of the tree).
+                        post(new Runnable() {
+                            public void run() {
+                                ((Workspace) mParent).animateViewIntoPosition(child);
+                            }
+                        });
                     }
                 }
             }