diff --git a/src/com/android/launcher2/AppWidgetResizeFrame.java b/src/com/android/launcher2/AppWidgetResizeFrame.java
index c7dbc0f..4762193 100644
--- a/src/com/android/launcher2/AppWidgetResizeFrame.java
+++ b/src/com/android/launcher2/AppWidgetResizeFrame.java
@@ -64,11 +64,13 @@
     public static final int RIGHT = 2;
     public static final int BOTTOM = 3;
 
+    private Launcher mLauncher;
+
     public AppWidgetResizeFrame(Context context, ItemInfo itemInfo, 
             LauncherAppWidgetHostView widgetView, CellLayout cellLayout, DragLayer dragLayer) {
 
         super(context);
-        mContext = context;
+        mLauncher = (Launcher) context;
         mItemInfo = itemInfo;
         mCellLayout = cellLayout;
         mWidgetView = widgetView;
@@ -77,7 +79,7 @@
         mWorkspace = (Workspace) dragLayer.findViewById(R.id.workspace);
 
         final AppWidgetProviderInfo info = widgetView.getAppWidgetInfo();
-        int[] result = mCellLayout.rectToCell(info.minResizeWidth, info.minResizeHeight, null);
+        int[] result = mLauncher.getMinResizeSpanForWidget(info, null);
         mMinHSpan = result[0];
         mMinVSpan = result[1];
 
@@ -123,7 +125,7 @@
             mRightHandle.setVisibility(GONE);
         }
 
-        final float density = mContext.getResources().getDisplayMetrics().density;
+        final float density = mLauncher.getResources().getDisplayMetrics().density;
         mBackgroundPadding = (int) Math.ceil(density * BACKGROUND_PADDING);
         mTouchTargetWidth = 2 * mBackgroundPadding;
     }
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index c3edb99..b6393ca 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -902,6 +902,10 @@
         return getSpanForWidget(info.provider, info.minWidth, info.minHeight, spanXY);
     }
 
+    int[] getMinResizeSpanForWidget(AppWidgetProviderInfo info, int[] spanXY) {
+        return getSpanForWidget(info.provider, info.minResizeWidth, info.minResizeHeight, spanXY);
+    }
+
     int[] getSpanForWidget(PendingAddWidgetInfo info, int[] spanXY) {
         return getSpanForWidget(info.componentName, info.minWidth, info.minHeight, spanXY);
     }
