diff --git a/res/drawable-hdpi/ic_gel_setting_icn.png b/res/drawable-hdpi/ic_gel_setting_icn.png
new file mode 100644
index 0000000..f805947
--- /dev/null
+++ b/res/drawable-hdpi/ic_gel_setting_icn.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_gel_wallpaper_icn.png b/res/drawable-hdpi/ic_gel_wallpaper_icn.png
new file mode 100644
index 0000000..ad13c85
--- /dev/null
+++ b/res/drawable-hdpi/ic_gel_wallpaper_icn.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_gel_widget_icn.png b/res/drawable-hdpi/ic_gel_widget_icn.png
new file mode 100644
index 0000000..2bfd2c1
--- /dev/null
+++ b/res/drawable-hdpi/ic_gel_widget_icn.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_gel_setting_icn.png b/res/drawable-mdpi/ic_gel_setting_icn.png
new file mode 100644
index 0000000..096e6bc
--- /dev/null
+++ b/res/drawable-mdpi/ic_gel_setting_icn.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_gel_wallpaper_icn.png b/res/drawable-mdpi/ic_gel_wallpaper_icn.png
new file mode 100644
index 0000000..61a7b7e
--- /dev/null
+++ b/res/drawable-mdpi/ic_gel_wallpaper_icn.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_gel_widget_icn.png b/res/drawable-mdpi/ic_gel_widget_icn.png
new file mode 100644
index 0000000..8a2cb7a
--- /dev/null
+++ b/res/drawable-mdpi/ic_gel_widget_icn.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_gel_setting_icn.png b/res/drawable-xhdpi/ic_gel_setting_icn.png
new file mode 100644
index 0000000..fe17163
--- /dev/null
+++ b/res/drawable-xhdpi/ic_gel_setting_icn.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_gel_wallpaper_icn.png b/res/drawable-xhdpi/ic_gel_wallpaper_icn.png
new file mode 100644
index 0000000..d9472d9
--- /dev/null
+++ b/res/drawable-xhdpi/ic_gel_wallpaper_icn.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_gel_widget_icn.png b/res/drawable-xhdpi/ic_gel_widget_icn.png
new file mode 100644
index 0000000..da6e3e9
--- /dev/null
+++ b/res/drawable-xhdpi/ic_gel_widget_icn.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_gel_setting_icn.png b/res/drawable-xxhdpi/ic_gel_setting_icn.png
new file mode 100644
index 0000000..813716d
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_gel_setting_icn.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_gel_wallpaper_icn.png b/res/drawable-xxhdpi/ic_gel_wallpaper_icn.png
new file mode 100644
index 0000000..3525446
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_gel_wallpaper_icn.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_gel_widget_icn.png b/res/drawable-xxhdpi/ic_gel_widget_icn.png
new file mode 100644
index 0000000..9342437
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_gel_widget_icn.png
Binary files differ
diff --git a/res/layout/overview_panel.xml b/res/layout/overview_panel.xml
index e05adf2..e4f4c89 100644
--- a/res/layout/overview_panel.xml
+++ b/res/layout/overview_panel.xml
@@ -26,6 +26,8 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/widget_button_text"
+        android:drawablePadding="4dp"
+        android:drawableTop="@drawable/ic_gel_widget_icn"
         android:textSize="18dp"/>
     <Space
         android:layout_width="@dimen/overview_panel_buttonSpacing"
@@ -35,6 +37,8 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/wallpaper_button_text"
+        android:drawablePadding="4dp"
+        android:drawableTop="@drawable/ic_gel_wallpaper_icn"
         android:textSize="18dp" />
     <Space
         android:layout_width="@dimen/overview_panel_buttonSpacing"
@@ -44,5 +48,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/settings_button_text"
+        android:drawablePadding="4dp"
+        android:drawableTop="@drawable/ic_gel_setting_icn"
         android:textSize="18dp" />
 </LinearLayout>
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 76d60a8..6cb6a57 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1931,7 +1931,8 @@
                 AlphaUpdateListener.updateVisibility(getPageIndicator());
             }
             searchBar.setAlpha(finalSearchBarAlpha);
-            AlphaUpdateListener.updateVisibility(mLauncher.getSearchBar());
+            AlphaUpdateListener.updateVisibility(searchBar);
+            updateCustomContentVisibility();
         }
         if (finalSearchBarAlpha == 0) {
             mLauncher.setVoiceButtonProxyVisible(false);
@@ -1998,10 +1999,27 @@
     private void onTransitionPrepare() {
         mIsSwitchingState = true;
         updateChildrenLayersEnabled(false);
-        if (mState != Workspace.State.NORMAL) {
-            if (hasCustomContent()) {
-                mWorkspaceScreens.get(CUSTOM_CONTENT_SCREEN_ID).setVisibility(INVISIBLE);
-            }
+        hideCustomContentIfNecessary();
+    }
+
+    void updateCustomContentVisibility() {
+        int visibility = mState == Workspace.State.NORMAL ? VISIBLE : INVISIBLE;
+        if (hasCustomContent()) {
+            mWorkspaceScreens.get(CUSTOM_CONTENT_SCREEN_ID).setVisibility(visibility);
+        }
+    }
+
+    void showCustomContentIfNecessary() {
+        boolean show  = mState == Workspace.State.NORMAL;
+        if (show && hasCustomContent()) {
+            mWorkspaceScreens.get(CUSTOM_CONTENT_SCREEN_ID).setVisibility(VISIBLE);
+        }
+    }
+
+    void hideCustomContentIfNecessary() {
+        boolean hide  = mState != Workspace.State.NORMAL;
+        if (hide && hasCustomContent()) {
+            mWorkspaceScreens.get(CUSTOM_CONTENT_SCREEN_ID).setVisibility(INVISIBLE);
         }
     }
 
@@ -2018,11 +2036,7 @@
                 cl.setShortcutAndWidgetAlpha(1f);
             }
         }
-        if (mState == Workspace.State.NORMAL) {
-            if (hasCustomContent()) {
-                mWorkspaceScreens.get(CUSTOM_CONTENT_SCREEN_ID).setVisibility(VISIBLE);
-            }
-        }
+        showCustomContentIfNecessary();
     }
 
     @Override
