merge in honeycomb-release history after reset to honeycomb
diff --git a/res/xml/default_workspace.xml b/res/xml/default_workspace.xml
index b02e0fd..0519a48 100644
--- a/res/xml/default_workspace.xml
+++ b/res/xml/default_workspace.xml
@@ -43,15 +43,6 @@
         launcher:spanX="4"
         launcher:spanY="1" />
 
-    <appwidget
-        launcher:packageName="com.android.vending"
-        launcher:className="com.android.vending.MarketWidgetProvider"
-        launcher:screen="3"
-        launcher:x="1"
-        launcher:y="1"
-        launcher:spanX="2"
-        launcher:spanY="2" />
-
     <!--  Far-right screen [4] -->
 
 </favorites>
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 2359e32..fd389ca 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -488,7 +488,7 @@
                 bg = mini ? mActiveBackgroundMini : mActiveGlowBackground;
             } else if (mIsDragOccuring && mAcceptsDrops) {
                 bg = mini ? mActiveBackgroundMini : mActiveBackground;
-            } else if (mIsDefaultDropTarget) {
+            } else if (mIsDragOccuring && mIsDefaultDropTarget) {
                 bg = mini ? mNormalGlowBackgroundMini : mNormalGlowBackground;
             } else {
                 bg = mini ? mNormalBackgroundMini : mNormalBackground;
@@ -963,14 +963,10 @@
                     if (lp.animateDrop) {
                         lp.animateDrop = false;
 
-                        // 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);
-                            }
-                        });
+                        // This call does not result in a requestLayout(), but at one point did.
+                        // We need to be cautious about any method calls within the layout pass
+                        // to insure we don't leave the view tree in a bad state.
+                        ((Workspace) mParent).animateViewIntoPosition(child);
                     }
                 }
             }
@@ -1392,7 +1388,7 @@
             lp.isDragging = false;
             lp.dropped = true;
             lp.animateDrop = animate;
-            child.setVisibility(View.VISIBLE);
+            child.setVisibility(View.INVISIBLE);
             child.requestLayout();
         }
     }
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 1085083..9fcd1b4 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -1298,6 +1298,9 @@
             for (int i = 0; i < screenCount; i++) {
                 final CellLayout cl = (CellLayout)getChildAt(i);
                 float finalAlphaValue = (i == mCurrentPage) ? 1.0f : 0.0f;
+                float finalAlphaMultiplierValue =
+                        ((i == mCurrentPage) && (mShrinkState != ShrinkState.SPRING_LOADED)) ?
+                        0.0f : 1.0f;
                 float rotation = 0.0f;
 
                 if (i < mCurrentPage) {
@@ -1315,6 +1318,8 @@
                             PropertyValuesHolder.ofFloat("scaleX", finalScaleFactor),
                             PropertyValuesHolder.ofFloat("scaleY", finalScaleFactor),
                             PropertyValuesHolder.ofFloat("backgroundAlpha", finalBackgroundAlpha),
+                            PropertyValuesHolder.ofFloat("backgroundAlphaMultiplier",
+                                    finalAlphaMultiplierValue),
                             PropertyValuesHolder.ofFloat("alpha", finalAlphaValue),
                             PropertyValuesHolder.ofFloat("rotationY", rotation));
                     animWithInterpolator.setDuration(duration);
@@ -1326,6 +1331,7 @@
                     cl.setScaleX(finalScaleFactor);
                     cl.setScaleY(finalScaleFactor);
                     cl.setBackgroundAlpha(0.0f);
+                    cl.setBackgroundAlphaMultiplier(finalAlphaMultiplierValue);
                     cl.setAlpha(finalAlphaValue);
                     cl.setRotationY(rotation);
                     mUnshrinkAnimationListener.onAnimationEnd(null);
@@ -1516,6 +1522,10 @@
         lp.oldY = viewY - (parent.getTop() - mScrollY);
     }
 
+    /*
+     * We should be careful that this method cannot result in any synchronous requestLayout()
+     * calls, as it is called from onLayout().
+     */
     public void animateViewIntoPosition(final View view) {
         final CellLayout parent = (CellLayout) view.getParent();
         final CellLayout.LayoutParams lp = (CellLayout.LayoutParams) view.getLayoutParams();
@@ -1574,7 +1584,6 @@
             }
         });
 
-        view.setVisibility(View.INVISIBLE);
         mDropAnim.start();
     }