Extend background to full screen.

Gradient and black backgrounds were stopping at the Status Bar.
When returning from a full screen app to the launcher the wallpaper
was completely visible when it should have been obscured by these
backgrounds. Making the app full screen while keeping the views
within the system insets fixes this.

Bug 7410717 fixed.

Change-Id: If3f7e4808961ee6c80fe2d0a328e6ca39fa5eb7a
diff --git a/res/layout-land/launcher.xml b/res/layout-land/launcher.xml
index 7f705f5..0892352 100644
--- a/res/layout-land/launcher.xml
+++ b/res/layout-land/launcher.xml
@@ -14,94 +14,105 @@
      limitations under the License.
 -->
 
-<com.android.launcher2.DragLayer
+<!-- Full screen view projects under the status bar and contains the background -->
+<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
 
-    android:id="@+id/drag_layer"
-    android:background="@drawable/workspace_bg"
+    android:id="@+id/launcher"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="@drawable/workspace_bg">
 
-    <!-- The workspace contains 5 screens of cells -->
-    <com.android.launcher2.Workspace
-        android:id="@+id/workspace"
+    <com.android.launcher2.DragLayer
+        android:id="@+id/drag_layer"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:paddingLeft="@dimen/workspace_left_padding"
-        android:paddingRight="@dimen/workspace_right_padding"
-        android:paddingTop="@dimen/workspace_top_padding"
-        android:paddingBottom="@dimen/workspace_bottom_padding"
-        launcher:defaultScreen="2"
-        launcher:cellCountX="@integer/cell_count_x"
-        launcher:cellCountY="@integer/cell_count_y"
-        launcher:pageSpacing="@dimen/workspace_page_spacing"
-        launcher:scrollIndicatorPaddingLeft="@dimen/qsb_bar_height"
-        launcher:scrollIndicatorPaddingRight="@dimen/button_bar_height">
+        android:fitsSystemWindows="true">
 
-        <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell3" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell4" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
-    </com.android.launcher2.Workspace>
+        <!-- The workspace contains 5 screens of cells -->
+        <com.android.launcher2.Workspace
+            android:id="@+id/workspace"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:paddingLeft="@dimen/workspace_left_padding"
+            android:paddingRight="@dimen/workspace_right_padding"
+            android:paddingTop="@dimen/workspace_top_padding"
+            android:paddingBottom="@dimen/workspace_bottom_padding"
+            launcher:defaultScreen="2"
+            launcher:cellCountX="@integer/cell_count_x"
+            launcher:cellCountY="@integer/cell_count_y"
+            launcher:pageSpacing="@dimen/workspace_page_spacing"
+            launcher:scrollIndicatorPaddingLeft="@dimen/qsb_bar_height"
+            launcher:scrollIndicatorPaddingRight="@dimen/button_bar_height">
 
-    <include
-        android:id="@+id/qsb_divider"
-        layout="@layout/workspace_divider"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_marginLeft="@dimen/qsb_bar_height"
-        android:layout_gravity="left" />
-    <include
-        android:id="@+id/dock_divider"
-        layout="@layout/workspace_divider"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_marginRight="@dimen/button_bar_height"
-        android:layout_gravity="right" />
-    <include
-        android:id="@+id/paged_view_indicator"
-        layout="@layout/scroll_indicator"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom" />
+            <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell3" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell4" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
+        </com.android.launcher2.Workspace>
 
-    <include layout="@layout/hotseat"
-        android:id="@+id/hotseat"
-        android:layout_width="@dimen/button_bar_height_plus_padding"
-        android:layout_height="match_parent"
-        android:layout_gravity="right" />
-    <include
-        android:id="@+id/qsb_bar"
-        layout="@layout/qsb_bar" />
+        <include
+            android:id="@+id/qsb_divider"
+            layout="@layout/workspace_divider"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="@dimen/qsb_bar_height"
+            android:layout_gravity="left" />
 
-    <com.android.launcher2.DrawableStateProxyView
-        android:id="@+id/voice_button_proxy"
-        android:layout_width="@dimen/qsb_bar_height"
-        android:layout_height="@dimen/app_icon_size"
-        android:layout_gravity="top|left"
-        android:layout_marginTop="64dp"
-        android:clickable="true"
-        android:onClick="onClickVoiceButton"
-        android:importantForAccessibility="no"
-        launcher:sourceViewId="@+id/voice_button" />
+        <include
+            android:id="@+id/dock_divider"
+            layout="@layout/workspace_divider"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_marginRight="@dimen/button_bar_height"
+            android:layout_gravity="right" />
 
-    <include layout="@layout/apps_customize_pane"
-        android:id="@+id/apps_customize_pane"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="invisible" />
+        <include
+            android:id="@+id/paged_view_indicator"
+            layout="@layout/scroll_indicator"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom" />
 
-    <include layout="@layout/workspace_cling"
-        android:id="@+id/workspace_cling"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone" />
+        <include layout="@layout/hotseat"
+            android:id="@+id/hotseat"
+            android:layout_width="@dimen/button_bar_height_plus_padding"
+            android:layout_height="match_parent"
+            android:layout_gravity="right" />
 
-    <include layout="@layout/folder_cling"
-        android:id="@+id/folder_cling"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone" />
-</com.android.launcher2.DragLayer>
+        <include
+            android:id="@+id/qsb_bar"
+            layout="@layout/qsb_bar" />
+
+        <com.android.launcher2.DrawableStateProxyView
+            android:id="@+id/voice_button_proxy"
+            android:layout_width="@dimen/qsb_bar_height"
+            android:layout_height="@dimen/app_icon_size"
+            android:layout_gravity="top|left"
+            android:layout_marginTop="64dp"
+            android:clickable="true"
+            android:onClick="onClickVoiceButton"
+            android:importantForAccessibility="no"
+            launcher:sourceViewId="@+id/voice_button" />
+
+        <include layout="@layout/apps_customize_pane"
+            android:id="@+id/apps_customize_pane"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="invisible" />
+
+        <include layout="@layout/workspace_cling"
+            android:id="@+id/workspace_cling"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="gone" />
+
+        <include layout="@layout/folder_cling"
+            android:id="@+id/folder_cling"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="gone" />
+    </com.android.launcher2.DragLayer>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout-port/launcher.xml b/res/layout-port/launcher.xml
index a427501..ad7eff4 100644
--- a/res/layout-port/launcher.xml
+++ b/res/layout-port/launcher.xml
@@ -14,90 +14,103 @@
      limitations under the License.
 -->
 
-<com.android.launcher2.DragLayer
+<!-- Full screen view projects under the status bar and contains the background -->
+<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
 
-    android:id="@+id/drag_layer"
-    android:background="@drawable/workspace_bg"
+    android:id="@+id/launcher"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="@drawable/workspace_bg">
 
-    <!-- Keep these behind the workspace so that they are not visible when
-         we go into AllApps -->
-    <include
-        android:id="@+id/dock_divider"
-        layout="@layout/workspace_divider"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="@dimen/button_bar_height"
-        android:layout_gravity="bottom" />
-    <include
-        android:id="@+id/paged_view_indicator"
-        layout="@layout/scroll_indicator"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom"
-        android:layout_marginBottom="@dimen/button_bar_height" />
+    <com.android.launcher2.DragLayer
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
 
-    <!-- The workspace contains 5 screens of cells -->
-    <com.android.launcher2.Workspace
-        android:id="@+id/workspace"
+        android:id="@+id/drag_layer"
+        android:background="@drawable/workspace_bg"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:paddingLeft="@dimen/workspace_left_padding"
-        android:paddingRight="@dimen/workspace_right_padding"
-        android:paddingTop="@dimen/workspace_top_padding"
-        android:paddingBottom="@dimen/workspace_bottom_padding"
-        launcher:defaultScreen="2"
-        launcher:cellCountX="@integer/cell_count_x"
-        launcher:cellCountY="@integer/cell_count_y"
-        launcher:pageSpacing="@dimen/workspace_page_spacing"
-        launcher:scrollIndicatorPaddingLeft="@dimen/workspace_divider_padding_left"
-        launcher:scrollIndicatorPaddingRight="@dimen/workspace_divider_padding_right">
+        android:fitsSystemWindows="true">
 
-        <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell3" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell4" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
-    </com.android.launcher2.Workspace>
+        <!-- Keep these behind the workspace so that they are not visible when
+             we go into AllApps -->
+        <include
+            android:id="@+id/dock_divider"
+            layout="@layout/workspace_divider"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="@dimen/button_bar_height"
+            android:layout_gravity="bottom" />
 
-    <include layout="@layout/hotseat"
-        android:id="@+id/hotseat"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/button_bar_height_plus_padding"
-        android:layout_gravity="bottom" />
+        <include
+            android:id="@+id/paged_view_indicator"
+            layout="@layout/scroll_indicator"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom"
+            android:layout_marginBottom="@dimen/button_bar_height" />
 
-    <include
-        android:id="@+id/qsb_bar"
-        layout="@layout/qsb_bar" />
+        <!-- The workspace contains 5 screens of cells -->
+        <com.android.launcher2.Workspace
+            android:id="@+id/workspace"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:paddingLeft="@dimen/workspace_left_padding"
+            android:paddingRight="@dimen/workspace_right_padding"
+            android:paddingTop="@dimen/workspace_top_padding"
+            android:paddingBottom="@dimen/workspace_bottom_padding"
+            launcher:defaultScreen="2"
+            launcher:cellCountX="@integer/cell_count_x"
+            launcher:cellCountY="@integer/cell_count_y"
+            launcher:pageSpacing="@dimen/workspace_page_spacing"
+            launcher:scrollIndicatorPaddingLeft="@dimen/workspace_divider_padding_left"
+            launcher:scrollIndicatorPaddingRight="@dimen/workspace_divider_padding_right">
 
-    <com.android.launcher2.DrawableStateProxyView
-        android:id="@+id/voice_button_proxy"
-        android:layout_width="80dp"
-        android:layout_height="@dimen/qsb_bar_height"
-        android:layout_gravity="top|right"
-        android:clickable="true"
-        android:onClick="onClickVoiceButton"
-        android:importantForAccessibility="no"
-        launcher:sourceViewId="@+id/voice_button" />
+            <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell3" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell4" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
+        </com.android.launcher2.Workspace>
 
-    <include layout="@layout/apps_customize_pane"
-        android:id="@+id/apps_customize_pane"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="invisible" />
+        <include layout="@layout/hotseat"
+            android:id="@+id/hotseat"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/button_bar_height_plus_padding"
+            android:layout_gravity="bottom" />
 
-    <include layout="@layout/workspace_cling"
-        android:id="@+id/workspace_cling"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone" />
+        <include
+            android:id="@+id/qsb_bar"
+            layout="@layout/qsb_bar" />
 
-    <include layout="@layout/folder_cling"
-        android:id="@+id/folder_cling"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone" />
-</com.android.launcher2.DragLayer>
+        <com.android.launcher2.DrawableStateProxyView
+            android:id="@+id/voice_button_proxy"
+            android:layout_width="80dp"
+            android:layout_height="@dimen/qsb_bar_height"
+            android:layout_gravity="top|right"
+            android:clickable="true"
+            android:onClick="onClickVoiceButton"
+            android:importantForAccessibility="no"
+            launcher:sourceViewId="@+id/voice_button" />
+
+        <include layout="@layout/apps_customize_pane"
+            android:id="@+id/apps_customize_pane"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="invisible" />
+
+        <include layout="@layout/workspace_cling"
+            android:id="@+id/workspace_cling"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="gone" />
+
+        <include layout="@layout/folder_cling"
+            android:id="@+id/folder_cling"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="gone" />
+    </com.android.launcher2.DragLayer>
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout-sw720dp/launcher.xml b/res/layout-sw720dp/launcher.xml
index 418469b..b554042 100644
--- a/res/layout-sw720dp/launcher.xml
+++ b/res/layout-sw720dp/launcher.xml
@@ -14,91 +14,104 @@
      limitations under the License.
 -->
 
-<com.android.launcher2.DragLayer
+<!-- Full screen view projects under the status bar and contains the background -->
+<FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
 
-    android:id="@+id/drag_layer"
-    android:background="@drawable/workspace_bg"
+    android:id="@+id/launcher"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="@drawable/workspace_bg">
 
-    <!-- Keep these behind the workspace so that they are not visible when
-         we go into AllApps -->
-    <include
-        android:id="@+id/dock_divider"
-        layout="@layout/workspace_divider"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="@dimen/button_bar_height_plus_padding"
-        android:layout_gravity="bottom|center_horizontal" />
-    <include
-        android:id="@+id/paged_view_indicator"
-        layout="@layout/scroll_indicator"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="bottom"
-        android:layout_marginBottom="@dimen/button_bar_height_plus_padding" />
+    <com.android.launcher2.DragLayer
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
 
-    <!-- The workspace contains 5 screens of cells -->
-    <com.android.launcher2.Workspace
-        android:id="@+id/workspace"
+        android:id="@+id/drag_layer"
+        android:background="@drawable/workspace_bg"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:paddingLeft="@dimen/workspace_left_padding"
-        android:paddingRight="@dimen/workspace_right_padding"
-        android:paddingTop="@dimen/workspace_top_padding"
-        android:paddingBottom="@dimen/workspace_bottom_padding"
-        launcher:defaultScreen="2"
-        launcher:cellCountX="@integer/cell_count_x"
-        launcher:cellCountY="@integer/cell_count_y"
-        launcher:pageSpacing="@dimen/workspace_page_spacing"
-        launcher:scrollIndicatorPaddingLeft="@dimen/workspace_divider_padding_left"
-        launcher:scrollIndicatorPaddingRight="@dimen/workspace_divider_padding_right">
+        android:fitsSystemWindows="true">
 
-        <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell3" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell4" layout="@layout/workspace_screen" />
-        <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
-    </com.android.launcher2.Workspace>
+        <!-- Keep these behind the workspace so that they are not visible when
+             we go into AllApps -->
+        <include
+            android:id="@+id/dock_divider"
+            layout="@layout/workspace_divider"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="@dimen/button_bar_height_plus_padding"
+            android:layout_gravity="bottom|center_horizontal" />
 
-    <include layout="@layout/hotseat"
-        android:id="@+id/hotseat"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/button_bar_height_plus_padding"
-        android:layout_gravity="bottom" />
+        <include
+            android:id="@+id/paged_view_indicator"
+            layout="@layout/scroll_indicator"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom"
+            android:layout_marginBottom="@dimen/button_bar_height_plus_padding" />
 
-    <include
-        android:id="@+id/qsb_bar"
-        layout="@layout/qsb_bar" />
+        <!-- The workspace contains 5 screens of cells -->
+        <com.android.launcher2.Workspace
+            android:id="@+id/workspace"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:paddingLeft="@dimen/workspace_left_padding"
+            android:paddingRight="@dimen/workspace_right_padding"
+            android:paddingTop="@dimen/workspace_top_padding"
+            android:paddingBottom="@dimen/workspace_bottom_padding"
+            launcher:defaultScreen="2"
+            launcher:cellCountX="@integer/cell_count_x"
+            launcher:cellCountY="@integer/cell_count_y"
+            launcher:pageSpacing="@dimen/workspace_page_spacing"
+            launcher:scrollIndicatorPaddingLeft="@dimen/workspace_divider_padding_left"
+            launcher:scrollIndicatorPaddingRight="@dimen/workspace_divider_padding_right">
 
-    <com.android.launcher2.DrawableStateProxyView
-        android:id="@+id/voice_button_proxy"
-        android:layout_width="80dp"
-        android:layout_height="@dimen/qsb_bar_height"
-        android:layout_marginRight="@dimen/qsb_voice_proxy_padding_right"
-        android:layout_gravity="top|right"
-        android:clickable="true"
-        android:onClick="onClickVoiceButton"
-        android:importantForAccessibility="no"
-        launcher:sourceViewId="@+id/voice_button" />
+            <include android:id="@+id/cell1" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell2" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell3" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell4" layout="@layout/workspace_screen" />
+            <include android:id="@+id/cell5" layout="@layout/workspace_screen" />
+        </com.android.launcher2.Workspace>
 
-    <include layout="@layout/apps_customize_pane"
-        android:id="@+id/apps_customize_pane"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="invisible" />
+        <include layout="@layout/hotseat"
+            android:id="@+id/hotseat"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/button_bar_height_plus_padding"
+            android:layout_gravity="bottom" />
 
-    <include layout="@layout/workspace_cling"
-        android:id="@+id/workspace_cling"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone" />
+        <include
+            android:id="@+id/qsb_bar"
+            layout="@layout/qsb_bar" />
 
-    <include layout="@layout/folder_cling"
-        android:id="@+id/folder_cling"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone" />
-</com.android.launcher2.DragLayer>
+        <com.android.launcher2.DrawableStateProxyView
+            android:id="@+id/voice_button_proxy"
+            android:layout_width="80dp"
+            android:layout_height="@dimen/qsb_bar_height"
+            android:layout_marginRight="@dimen/qsb_voice_proxy_padding_right"
+            android:layout_gravity="top|right"
+            android:clickable="true"
+            android:onClick="onClickVoiceButton"
+            android:importantForAccessibility="no"
+            launcher:sourceViewId="@+id/voice_button" />
+
+        <include layout="@layout/apps_customize_pane"
+            android:id="@+id/apps_customize_pane"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="invisible" />
+
+        <include layout="@layout/workspace_cling"
+            android:id="@+id/workspace_cling"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="gone" />
+
+        <include layout="@layout/folder_cling"
+            android:id="@+id/folder_cling"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:visibility="gone" />
+    </com.android.launcher2.DragLayer>
+</FrameLayout>
\ No newline at end of file
diff --git a/src/com/android/launcher2/AppWidgetResizeFrame.java b/src/com/android/launcher2/AppWidgetResizeFrame.java
index 7762ece..13ee6f9 100644
--- a/src/com/android/launcher2/AppWidgetResizeFrame.java
+++ b/src/com/android/launcher2/AppWidgetResizeFrame.java
@@ -399,8 +399,10 @@
 
     public void snapToWidget(boolean animate) {
         final DragLayer.LayoutParams lp = (DragLayer.LayoutParams) getLayoutParams();
-        int xOffset = mCellLayout.getLeft() + mCellLayout.getPaddingLeft() - mWorkspace.getScrollX();
-        int yOffset = mCellLayout.getTop() + mCellLayout.getPaddingTop() - mWorkspace.getScrollY();
+        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;
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index c221815..ffd63d2 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -50,8 +50,10 @@
 import android.database.ContentObserver;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
+import android.graphics.Color;
 import android.graphics.PorterDuff;
 import android.graphics.Rect;
+import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.AsyncTask;
@@ -209,6 +211,7 @@
     private Workspace mWorkspace;
     private View mQsbDivider;
     private View mDockDivider;
+    private View mLauncherView;
     private DragLayer mDragLayer;
     private DragController mDragController;
 
@@ -280,6 +283,9 @@
     private static Drawable.ConstantState[] sVoiceSearchIcon = new Drawable.ConstantState[2];
     private static Drawable.ConstantState[] sAppMarketIcon = new Drawable.ConstantState[2];
 
+    private Drawable mWorkspaceBackgroundDrawable;
+    private Drawable mBlackBackgroundDrawable;
+
     private final ArrayList<Integer> mSynchronouslyBoundPages = new ArrayList<Integer>();
 
     static final ArrayList<String> sDumpLogs = new ArrayList<String>();
@@ -727,6 +733,9 @@
         }
         mOnResumeState = State.NONE;
 
+        // Background was set to gradient in onPause(), restore to black if in all apps.
+        setWorkspaceBackground(mState == State.WORKSPACE);
+
         // Process any items that were added while Launcher was away
         InstallShortcutReceiver.flushInstallQueue(this);
 
@@ -928,10 +937,15 @@
     private void setupViews() {
         final DragController dragController = mDragController;
 
+        mLauncherView = findViewById(R.id.launcher);
         mDragLayer = (DragLayer) findViewById(R.id.drag_layer);
         mWorkspace = (Workspace) mDragLayer.findViewById(R.id.workspace);
-        mQsbDivider = (ImageView) findViewById(R.id.qsb_divider);
-        mDockDivider = (ImageView) findViewById(R.id.dock_divider);
+        mQsbDivider = findViewById(R.id.qsb_divider);
+        mDockDivider = findViewById(R.id.dock_divider);
+
+        mLauncherView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
+        mWorkspaceBackgroundDrawable = getResources().getDrawable(R.drawable.workspace_bg);
+        mBlackBackgroundDrawable = new ColorDrawable(Color.BLACK);
 
         // Setup the drag layer
         mDragLayer.setup(this, dragController);
@@ -952,12 +966,11 @@
         mSearchDropTargetBar = (SearchDropTargetBar) mDragLayer.findViewById(R.id.qsb_bar);
 
         // Setup AppsCustomize
-        mAppsCustomizeTabHost = (AppsCustomizeTabHost)
-                findViewById(R.id.apps_customize_pane);
+        mAppsCustomizeTabHost = (AppsCustomizeTabHost) findViewById(R.id.apps_customize_pane);
         mAppsCustomizeContent = (AppsCustomizePagedView)
                 mAppsCustomizeTabHost.findViewById(R.id.apps_customize_pane_content);
         mAppsCustomizeContent.setup(this, dragController);
-        
+
         // Setup the drag controller (drop targets have to be added in reverse order in priority)
         dragController.setDragScoller(mWorkspace);
         dragController.setScrollView(mDragLayer);
@@ -2351,10 +2364,12 @@
     }
 
     // Now a part of LauncherModel.Callbacks. Used to reorder loading steps.
+    @Override
     public boolean isAllAppsVisible() {
         return (mState == State.APPS_CUSTOMIZE) || (mOnResumeState == State.APPS_CUSTOMIZE);
     }
 
+    @Override
     public boolean isAllAppsButtonRank(int rank) {
         return mHotseat.isAllAppsButtonRank(rank);
     }
@@ -2362,7 +2377,6 @@
     /**
      * Helper method for the cameraZoomIn/cameraZoomOut animations
      * @param view The view being animated
-     * @param state The state that we are moving in or out of (eg. APPS_CUSTOMIZE)
      * @param scaleFactor The scale factor used for the zoom
      */
     private void setPivotsForZoom(View view, float scaleFactor) {
@@ -2380,6 +2394,11 @@
         }
     }
 
+    private void setWorkspaceBackground(boolean workspace) {
+        mLauncherView.setBackground(workspace ?
+                mWorkspaceBackgroundDrawable : mBlackBackgroundDrawable);
+    }
+
     void updateWallpaperVisibility(boolean visible) {
         int wpflags = visible ? WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER : 0;
         int curflags = getWindow().getAttributes().flags
@@ -2387,6 +2406,7 @@
         if (wpflags != curflags) {
             getWindow().setFlags(wpflags, WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER);
         }
+        setWorkspaceBackground(visible);
     }
 
     private void dispatchOnLauncherTransitionPrepare(View v, boolean animated, boolean toWorkspace) {