diff --git a/res/layout-sw720dp/launcher.xml b/res/layout-sw720dp/launcher.xml
index 33fafea..dff3b26 100644
--- a/res/layout-sw720dp/launcher.xml
+++ b/res/layout-sw720dp/launcher.xml
@@ -57,6 +57,7 @@
             android:paddingEnd="@dimen/workspace_right_padding"
             android:paddingTop="@dimen/workspace_top_padding"
             android:paddingBottom="@dimen/workspace_bottom_padding"
+            android:layout_gravity="center"
             launcher:defaultScreen="@integer/config_workspaceDefaultScreen"
             launcher:cellCountX="@integer/cell_count_x"
             launcher:cellCountY="@integer/cell_count_y"
diff --git a/src/com/android/launcher3/AppWidgetResizeFrame.java b/src/com/android/launcher3/AppWidgetResizeFrame.java
index 8e968f8..346c0c3 100644
--- a/src/com/android/launcher3/AppWidgetResizeFrame.java
+++ b/src/com/android/launcher3/AppWidgetResizeFrame.java
@@ -58,6 +58,7 @@
 
     int[] mDirectionVector = new int[2];
     int[] mLastDirectionVector = new int[2];
+    int[] mTmpPt = new int[2];
 
     final int SNAP_DURATION = 150;
     final int BACKGROUND_PADDING = 24;
@@ -399,18 +400,17 @@
 
     public void snapToWidget(boolean animate) {
         final DragLayer.LayoutParams lp = (DragLayer.LayoutParams) getLayoutParams();
-        int xOffset = mCellLayout.getLeft() + mCellLayout.getPaddingLeft()
-                + mDragLayer.getPaddingLeft() - mWorkspace.getScrollX();
-        int yOffset = mCellLayout.getTop() + mCellLayout.getPaddingTop()
-                + mDragLayer.getPaddingTop() - mWorkspace.getScrollY();
-
         int newWidth = mWidgetView.getWidth() + 2 * mBackgroundPadding - mWidgetPaddingLeft -
                 mWidgetPaddingRight;
         int newHeight = mWidgetView.getHeight() + 2 * mBackgroundPadding - mWidgetPaddingTop -
                 mWidgetPaddingBottom;
 
-        int newX = mWidgetView.getLeft() - mBackgroundPadding + xOffset + mWidgetPaddingLeft;
-        int newY = mWidgetView.getTop() - mBackgroundPadding + yOffset + mWidgetPaddingTop;
+        mTmpPt[0] = mWidgetView.getLeft();
+        mTmpPt[1] = mWidgetView.getTop();
+        mDragLayer.getDescendantCoordRelativeToSelf(mCellLayout.getShortcutsAndWidgets(), mTmpPt);
+
+        int newX = mTmpPt[0] - mBackgroundPadding + mWidgetPaddingLeft;
+        int newY = mTmpPt[1] - mBackgroundPadding + mWidgetPaddingTop;
 
         // We need to make sure the frame's touchable regions lie fully within the bounds of the 
         // DragLayer. We allow the actual handles to be clipped, but we shift the touch regions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index d366a16..851cce5 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -2384,6 +2384,7 @@
                     if (finalResizeRunnable != null) {
                         finalResizeRunnable.run();
                     }
+                    stripEmptyScreens();
                 }
             };
             mAnimatingViewIntoPlace = true;
@@ -3364,6 +3365,10 @@
                         mDragController.removeDropTarget((DropTarget) mDragInfo.cell);
                     }
                 }
+                // If we move the item to anything not on the Workspace, check if any empty
+                // screens need to be removed. If we dropped back on the workspace, this will
+                // be done post drop animation.
+                stripEmptyScreens();
             }
         } else if (mDragInfo != null) {
             CellLayout cellLayout;
@@ -3380,8 +3385,6 @@
         mDragOutline = null;
         mDragInfo = null;
 
-        stripEmptyScreens();
-
         // Hide the scrolling indicator after you pick up an item
         hideScrollingIndicator(false);
     }
