Merge "Tightening up the widget resize frame to account for widget padding"
diff --git a/src/com/android/launcher2/AppWidgetResizeFrame.java b/src/com/android/launcher2/AppWidgetResizeFrame.java
index 4390c59..eca5ad7 100644
--- a/src/com/android/launcher2/AppWidgetResizeFrame.java
+++ b/src/com/android/launcher2/AppWidgetResizeFrame.java
@@ -7,6 +7,7 @@
 import android.animation.ValueAnimator.AnimatorUpdateListener;
 import android.appwidget.AppWidgetProviderInfo;
 import android.content.Context;
+import android.content.res.Resources;
 import android.view.Gravity;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
@@ -30,6 +31,11 @@
     private boolean mTopBorderActive;
     private boolean mBottomBorderActive;
 
+    private int mWidgetPaddingLeft;
+    private int mWidgetPaddingRight;
+    private int mWidgetPaddingTop;
+    private int mWidgetPaddingBottom;
+
     private int mBaselineWidth;
     private int mBaselineHeight;
     private int mBaselineX;
@@ -103,6 +109,12 @@
                 Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
         addView(mBottomHandle, lp);
 
+        Resources r = context.getResources();
+        mWidgetPaddingLeft = r.getDimensionPixelSize(R.dimen.app_widget_padding_left);
+        mWidgetPaddingTop = r.getDimensionPixelSize(R.dimen.app_widget_padding_top);
+        mWidgetPaddingRight = r.getDimensionPixelSize(R.dimen.app_widget_padding_right);
+        mWidgetPaddingBottom = r.getDimensionPixelSize(R.dimen.app_widget_padding_bottom);
+
         if (mResizeMode == AppWidgetProviderInfo.RESIZE_HORIZONTAL) {
             mTopHandle.setVisibility(GONE);
             mBottomHandle.setVisibility(GONE);
@@ -294,10 +306,13 @@
         int xOffset = mCellLayout.getLeft() + mCellLayout.getLeftPadding() - mWorkspace.getScrollX();
         int yOffset = mCellLayout.getTop() + mCellLayout.getTopPadding() - mWorkspace.getScrollY();
 
-        int newWidth = mWidgetView.getWidth() + 2 * mBackgroundPadding;
-        int newHeight = mWidgetView.getHeight() + 2 * mBackgroundPadding;
-        int newX = mWidgetView.getLeft() - mBackgroundPadding + xOffset;
-        int newY = mWidgetView.getTop() - mBackgroundPadding + yOffset;
+        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;
 
         // We need to make sure the frame stays within the bounds of the CellLayout
         if (newY < 0) {