diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 2446f05..84e9728 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -31,8 +31,8 @@
     <string name="market" msgid="2652226429823445833">"Belanja"</string>
     <string name="external_drop_widget_error" msgid="2285187188524172774">"Tidak dapat melepas item ke layar Utama ini."</string>
     <string name="external_drop_widget_pick_title" msgid="7040647073452295370">"Pilih gawit untuk membuat"</string>
-    <string name="rename_folder_label" msgid="5646236631298452787">"Nama map"</string>
-    <string name="rename_folder_title" msgid="4544573104191526550">"Ubah nama map"</string>
+    <string name="rename_folder_label" msgid="5646236631298452787">"Nama folder"</string>
+    <string name="rename_folder_title" msgid="4544573104191526550">"Ubah nama folder"</string>
     <string name="rename_action" msgid="6016003384693240896">"OK"</string>
     <string name="cancel_action" msgid="3811860427489435048">"Batal"</string>
     <string name="menu_item_add_item" msgid="6233177331075781114">"Tambahkan ke Layar Utama"</string>
@@ -70,7 +70,7 @@
     <string name="cab_menu_app_info" msgid="914548323652698884">"Detail apl"</string>
     <string name="cab_app_selection_text" msgid="6378522164293415735">"1 apl dipilih"</string>
     <string name="cab_widget_selection_text" msgid="962527270506951955">"1 widget dipilih"</string>
-    <string name="cab_folder_selection_text" msgid="8916111874189565067">"1 map dipilih"</string>
+    <string name="cab_folder_selection_text" msgid="8916111874189565067">"1 folder dipilih"</string>
     <string name="cab_shortcut_selection_text" msgid="8115847384500412878">"1 pintasan dipilih"</string>
     <string name="permlab_install_shortcut" msgid="1201690825493376489">"pasang pintasan"</string>
     <string name="permdesc_install_shortcut" msgid="8634424803272077038">"Mengizinkan apl menambahkan pintasan tanpa campur tangan pengguna."</string>
@@ -83,7 +83,7 @@
     <string name="gadget_error_text" msgid="8359351016167075858">"Masalah memuat widget"</string>
     <string name="uninstall_system_app_text" msgid="6429814133777046491">"Ini adalah apl sistem dan tidak dapat dicopot pemasangannya."</string>
     <string name="dream_name" msgid="2847171357608437154">"Rocket Launcher"</string>
-    <string name="folder_hint_text" msgid="8633351560105748141">"Map Tanpa Nama"</string>
+    <string name="folder_hint_text" msgid="8633351560105748141">"Folder Tanpa Nama"</string>
     <string name="default_scroll_format" msgid="4057140866420001240">"Laman %1$d dari %2$d"</string>
     <string name="workspace_scroll_format" msgid="7911126267695001437">"Ruang kerja %1$d dari %2$d"</string>
     <string name="apps_customize_apps_scroll_format" msgid="5494241912377704885">"Laman apl %1$d dari %2$d"</string>
@@ -93,14 +93,14 @@
     <string name="workspace_cling_open_all_apps" msgid="2459977609848572588">"Untuk melihat semua apl Anda, sentuh lingkaran."</string>
     <string name="all_apps_cling_title" msgid="2559734712581447107">"Pilih beberapa apl"</string>
     <string name="all_apps_cling_add_item" msgid="5665035103260318891">"Untuk menambah apl ke layar Utama Anda, sentuh &amp; tahan apl tersebut."</string>
-    <string name="folder_cling_title" msgid="4308949882377840953">"Atur apl Anda dengan map"</string>
+    <string name="folder_cling_title" msgid="4308949882377840953">"Atur apl Anda dengan folder"</string>
     <string name="folder_cling_move_item" msgid="270598675060435169">"Untuk memindahkan apl, sentuh &amp; tahan apl tersebut."</string>
-    <string name="folder_cling_create_folder" msgid="8352867485656129478">"Untuk membuat map baru di layar Utama Anda, tumpuk satu apl di atas apl yang lain."</string>
+    <string name="folder_cling_create_folder" msgid="8352867485656129478">"Untuk membuat folder baru di layar Utama Anda, tumpuk satu apl di atas apl yang lain."</string>
     <string name="cling_dismiss" msgid="2780907108735868381">"OK"</string>
-    <string name="folder_opened" msgid="1262064100943801533">"Map dibuka, <xliff:g id="WIDTH">%1$d</xliff:g> kali <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
-    <string name="folder_tap_to_close" msgid="1335478160661137579">"Sentuh untuk menutup map"</string>
+    <string name="folder_opened" msgid="1262064100943801533">"Folder dibuka, <xliff:g id="WIDTH">%1$d</xliff:g> kali <xliff:g id="HEIGHT">%2$d</xliff:g>"</string>
+    <string name="folder_tap_to_close" msgid="1335478160661137579">"Sentuh untuk menutup folder"</string>
     <string name="folder_tap_to_rename" msgid="5201612989905472442">"Sentuh untuk menyimpan pengubahan nama"</string>
-    <string name="folder_closed" msgid="3130534551370511932">"Map ditutup"</string>
-    <string name="folder_renamed" msgid="7951233572858053642">"Map diubah namanya menjadi <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="folder_name_format" msgid="3051680259794759037">"Map: <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="folder_closed" msgid="3130534551370511932">"Folder ditutup"</string>
+    <string name="folder_renamed" msgid="7951233572858053642">"Folder diubah namanya menjadi <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="folder_name_format" msgid="3051680259794759037">"Folder: <xliff:g id="NAME">%1$s</xliff:g>"</string>
 </resources>
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
index 0e7d63c..882de23 100644
--- a/res/values-sw600dp-land/dimens.xml
+++ b/res/values-sw600dp-land/dimens.xml
@@ -15,8 +15,9 @@
 -->
 
 <resources>
-    <dimen name="app_icon_size">65dp</dimen>
-    <dimen name="app_icon_padding_top">2dp</dimen>
+    <dimen name="app_icon_padding_top">0dp</dimen>
+    <dimen name="app_icon_drawable_padding_land">0dp</dimen>
+    <integer name="app_icon_scale_percent">90</integer>
 
 <!-- Hotseat -->
     <dimen name="hotseat_cell_width">75dp</dimen>
@@ -27,6 +28,7 @@
     <dimen name="workspace_cell_height">86dp</dimen>
     <dimen name="workspace_width_gap">32dp</dimen>
     <dimen name="workspace_height_gap">0dp</dimen>
+    <dimen name="workspace_icon_text_size">11sp</dimen>
 
 <!-- Folders -->
     <!-- The size of the image which sits behind the preview of the folder contents -->
diff --git a/res/values-sw600dp-port/dimens.xml b/res/values-sw600dp-port/dimens.xml
index 8e8455d..9565992 100644
--- a/res/values-sw600dp-port/dimens.xml
+++ b/res/values-sw600dp-port/dimens.xml
@@ -16,6 +16,7 @@
 
 <resources>
 <!-- Workspace -->
+    <integer name="app_icon_scale_percent">-1</integer>
     <dimen name="workspace_width_gap">0dp</dimen>
     <dimen name="workspace_height_gap">32dp</dimen>
 
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index a6402ae..0fb8d33 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -34,7 +34,7 @@
     <dimen name="app_widget_preview_padding_top">10dp</dimen>
 
     <!-- Size of icons in workspace -->
-    <dimen name="app_icon_size">72dp</dimen>
+    <integer name="app_icon_scale_percent">-1</integer>
     <integer name="app_icon_hotseat_scale_percent">-1</integer>
 
     <dimen name="all_apps_button_vertical_padding">4dip</dimen>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 890e216..4a69f4a 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -47,8 +47,10 @@
     <dimen name="hotseat_width_gap">-1dp</dimen>
     <dimen name="hotseat_height_gap">-1dp</dimen>
     <dimen name="workspace_overscroll_drawable_padding">0dp</dimen>
+    <dimen name="workspace_icon_text_size">12sp</dimen>
 
     <dimen name="app_icon_drawable_padding">6dp</dimen>
+    <dimen name="app_icon_drawable_padding_land">2dp</dimen>
     <dimen name="app_icon_padding_top">8dp</dimen>
 
 <!-- QSB -->
@@ -66,6 +68,7 @@
     <dimen name="apps_customize_tab_bar_height">52dp</dimen>
     <dimen name="apps_customize_tab_bar_margin_top">0dp</dimen>
     <dimen name="app_icon_size">48dp</dimen>
+    <integer name="app_icon_scale_percent">-1</integer>
     <integer name="app_icon_hotseat_scale_percent">-1</integer>
     <!-- The width can be 72dp because we don't have L/R padding -->
     <dimen name="apps_customize_cell_width">74dp</dimen>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index f5224d2..6506f95 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -62,7 +62,7 @@
         <item name="android:gravity">center_horizontal</item>
         <item name="android:singleLine">true</item>
         <item name="android:ellipsize">marquee</item>
-        <item name="android:textSize">12sp</item>
+        <item name="android:textSize">@dimen/workspace_icon_text_size</item>
         <item name="android:textColor">@color/workspace_icon_text_color</item>
         <item name="android:shadowRadius">2.0</item>
         <item name="android:shadowColor">#B0000000</item>
@@ -77,7 +77,7 @@
     </style>
 
     <style name="WorkspaceIcon.Landscape">
-        <item name="android:drawablePadding">2dp</item>
+        <item name="android:drawablePadding">@dimen/app_icon_drawable_padding_land</item>
         <item name="android:paddingLeft">4dp</item>
         <item name="android:paddingRight">4dp</item>
         <item name="android:paddingTop">@dimen/app_icon_padding_top</item>
diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java
index b41a02e..623c6ff 100644
--- a/src/com/android/launcher2/BubbleTextView.java
+++ b/src/com/android/launcher2/BubbleTextView.java
@@ -295,7 +295,7 @@
         }
 
         // If text is transparent, don't draw any shadow
-        if (getCurrentTextColor() == android.R.color.transparent) {
+        if (getCurrentTextColor() == getResources().getColor(android.R.color.transparent)) {
             getPaint().clearShadowLayer();
             super.draw(canvas);
             return;
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index bbb0d7f..1aaba6d 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -138,6 +138,7 @@
 
     private boolean mIsHotseat = false;
     private final int mBubbleScalePercent;
+    private final int mBubbleHotseatScalePercent;
 
     public CellLayout(Context context) {
         this(context, null);
@@ -184,7 +185,8 @@
         mNormalBackground.setFilterBitmap(true);
         mActiveGlowBackground.setFilterBitmap(true);
 
-        mBubbleScalePercent = res.getInteger(R.integer.app_icon_hotseat_scale_percent);
+        mBubbleScalePercent = res.getInteger(R.integer.app_icon_scale_percent);
+        mBubbleHotseatScalePercent = res.getInteger(R.integer.app_icon_hotseat_scale_percent);
 
         // Initialize the data structures used for the drag visualization.
 
@@ -585,6 +587,34 @@
         return addViewToCellLayout(child, index, childId, params, markCells, false);
     }
 
+    private void scaleChild(BubbleTextView bubbleChild, float pivot, int scalePercent) {
+        // If we haven't measured the child yet, do it now
+        // (this happens if we're being dropped from all-apps
+        if (bubbleChild.getLayoutParams() instanceof LayoutParams &&
+                (bubbleChild.getMeasuredWidth() | bubbleChild.getMeasuredHeight()) == 0) {
+            getChildrenLayout().measureChild(bubbleChild);
+        }
+        int measuredWidth = bubbleChild.getMeasuredWidth();
+        int measuredHeight = bubbleChild.getMeasuredHeight();
+
+        float scale = scalePercent / 100f;
+        bubbleChild.setPivotX(pivot);
+        bubbleChild.setPivotY(pivot);
+        bubbleChild.setScaleX(scale);
+        bubbleChild.setScaleY(scale);
+        bubbleChild.setTranslationX(measuredWidth * (1 - scale) / 2);
+        bubbleChild.setTranslationY(measuredHeight * (1 - scale) / 2);
+    }
+
+    private void resetChild(BubbleTextView bubbleChild) {
+        bubbleChild.setScaleX(1f);
+        bubbleChild.setScaleY(1f);
+        bubbleChild.setTranslationX(0f);
+        bubbleChild.setTranslationY(0f);
+
+        bubbleChild.setTextColor(getResources().getColor(R.color.workspace_icon_text_color));
+    }
+
     public boolean addViewToCellLayout(View child, int index, int childId, LayoutParams params,
             boolean markCells, boolean allApps) {
         final LayoutParams lp = params;
@@ -596,32 +626,17 @@
         if (child instanceof BubbleTextView) {
             BubbleTextView bubbleChild = (BubbleTextView) child;
 
-            if (mIsHotseat && !allApps && mBubbleScalePercent >= 0) {
-                // If we haven't measured the child yet, do it now
-                // (this happens if we're being dropped from all-apps
-                if ((bubbleChild.getMeasuredWidth() | bubbleChild.getMeasuredHeight()) == 0) {
-                    getChildrenLayout().measureChild(bubbleChild);
-                }
-                int measuredWidth = bubbleChild.getMeasuredWidth();
-                int measuredHeight = bubbleChild.getMeasuredHeight();
+            // Start the child with 100% scale and visible text
+            resetChild(bubbleChild);
 
-                float bubbleScale = mBubbleScalePercent / 100f;
-                bubbleChild.setPivotX(0);
-                bubbleChild.setPivotY(0);
-                bubbleChild.setScaleX(bubbleScale);
-                bubbleChild.setScaleY(bubbleScale);
-                bubbleChild.setTranslationX(measuredWidth * (1 - bubbleScale) / 2);
-                bubbleChild.setTranslationY(measuredHeight * (1 - bubbleScale) / 2);
+            if (mIsHotseat && !allApps && mBubbleHotseatScalePercent >= 0) {
+                // Scale/make transparent for a hotseat
+                scaleChild(bubbleChild, 0f, mBubbleHotseatScalePercent);
 
-                bubbleChild.setTextColor(android.R.color.transparent);
-            } else {
-                bubbleChild.setScaleX(1f);
-                bubbleChild.setScaleY(1f);
-                bubbleChild.setTranslationX(0f);
-                bubbleChild.setTranslationY(0f);
-
-                bubbleChild.setTextColor(
-                        getResources().getColor(R.color.workspace_icon_text_color));
+                bubbleChild.setTextColor(getResources().getColor(android.R.color.transparent));
+            } else if (mBubbleScalePercent >= 0) {
+                // Else possibly still scale it if we need to for smaller icons
+                scaleChild(bubbleChild, 0f, mBubbleScalePercent);
             }
         }
 
diff --git a/src/com/android/launcher2/CheckLongPressHelper.java b/src/com/android/launcher2/CheckLongPressHelper.java
index 3ccda26..5c3752a 100644
--- a/src/com/android/launcher2/CheckLongPressHelper.java
+++ b/src/com/android/launcher2/CheckLongPressHelper.java
@@ -28,6 +28,7 @@
             if ((mView.getParent() != null) && mView.hasWindowFocus()
                     && !mHasPerformedLongPress) {
                 if (mView.performLongClick()) {
+                    mView.setPressed(false);
                     mHasPerformedLongPress = true;
                 }
             }
