Merge "Fixing issue where items dragged from the dock would fly down below."
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 9913a6b..035d9ea 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -2259,7 +2259,9 @@
 
             if (continueDrop && dropTargetLayout != null) {
                 // Move internally
-                long container = mLauncher.isHotseatLayout(dropTargetLayout) ?
+                boolean hasMovedLayouts = (getParentCellLayoutForView(cell) != dropTargetLayout);
+                boolean hasMovedIntoHotseat = mLauncher.isHotseatLayout(dropTargetLayout);
+                long container = hasMovedIntoHotseat ?
                         LauncherSettings.Favorites.CONTAINER_HOTSEAT :
                         LauncherSettings.Favorites.CONTAINER_DESKTOP;
                 int screen = (mTargetCell[0] < 0) ?
@@ -2272,8 +2274,7 @@
                         mDragViewVisualCenter[1], spanX, spanY, dropTargetLayout, mTargetCell);
                 // If the item being dropped is a shortcut and the nearest drop
                 // cell also contains a shortcut, then create a folder with the two shortcuts.
-                boolean dropInscrollArea = mCurrentPage != screen && screen > -1;
-
+                boolean dropInscrollArea = hasMovedLayouts && !hasMovedIntoHotseat;
                 if (!dropInscrollArea && createUserFolderIfNecessary(cell, container,
                         dropTargetLayout, mTargetCell, false, d.dragView, null)) {
                     return;
@@ -2295,7 +2296,7 @@
 
 
                 if (mTargetCell[0] >= 0 && mTargetCell[1] >= 0) {
-                    if (screen != mDragInfo.screen) {
+                    if (hasMovedLayouts) {
                         // Reparent the view
                         getParentCellLayoutForView(cell).removeView(cell);
                         addInScreen(cell, container, screen, mTargetCell[0], mTargetCell[1],