diff --git a/res/layout/search_edittext.xml b/res/layout/search_edittext.xml
index 1932228..50cbf5a 100644
--- a/res/layout/search_edittext.xml
+++ b/res/layout/search_edittext.xml
@@ -36,7 +36,8 @@
                 android:layout_margin="@dimen/search_box_icon_margin"
                 android:padding="@dimen/search_box_search_icon_padding"
                 android:src="@drawable/ic_ab_search"
-                android:importantForAccessibility="no" />
+                android:importantForAccessibility="no"
+                android:tint="@color/searchbox_icon_tint" />
 
             <TextView
                 android:layout_width="wrap_content"
@@ -59,7 +60,9 @@
             android:src="@drawable/ic_voice_search"
             android:clickable="true"
             android:contentDescription="@string/description_start_voice_search"
-            android:background="?android:attr/selectableItemBackground" />
+            android:background="?android:attr/selectableItemBackground"
+            android:tint="@color/searchbox_icon_tint" />
+
 
         <ImageButton
             android:id="@+id/dialtacts_options_menu_button"
@@ -69,7 +72,7 @@
             android:background="?android:attr/selectableItemBackground"
             android:src="@drawable/ic_overflow_menu"
             android:contentDescription="@string/action_menu_overflow_description"
-            android:tint="@color/searchbox_options_menu_color" />
+            android:tint="@color/searchbox_icon_tint" />
 
     </LinearLayout>
 
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 8bba479..42d9118 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -61,8 +61,8 @@
     <!-- Text color of the search box text as entered by user  -->
     <color name="searchbox_text_color">#000000</color>
     <!-- Text color of the search box hint text  -->
-    <color name="searchbox_hint_text_color">#d3d3d3</color>
-    <color name="searchbox_options_menu_color">#d5d5d5</color>
+    <color name="searchbox_hint_text_color">#a4a4a4</color>
+    <color name="searchbox_icon_tint">#a4a4a4</color>
 
     <!-- Color of the contact name in favorite tiles -->
     <color name="contact_tile_name_color">#ffffff</color>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index adf0fda..50e23ff 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -63,14 +63,16 @@
     <dimen name="favorites_row_undo_text_side_padding">32dp</dimen>
 
     <!-- Dimensions for most recent call shortcut cards -->
-    <dimen name="recent_call_log_item_translation_z">4dp</dimen>
-    <dimen name="recent_call_log_item_margin">8dp</dimen>
+    <dimen name="recent_call_log_item_translation_z">3dp</dimen>
+    <dimen name="recent_call_log_item_margin_horizontal">8dp</dimen>
+    <dimen name="recent_call_log_item_margin_top">4dp</dimen>
     <dimen name="recent_call_log_item_margin_bottom">6dp</dimen>
 
     <!-- The maximum amount to clip on the left and right of the recent call shortcut card -->
     <dimen name="recent_call_log_item_horizontal_clip_limit">20dp</dimen>
     <dimen name="recent_call_log_item_padding_start">8dp</dimen>
-    <dimen name="recent_call_log_item_padding_bottom">7dp</dimen>
+    <dimen name="recent_call_log_item_padding_top">12dp</dimen>
+    <dimen name="recent_call_log_item_padding_bottom">11dp</dimen>
 
     <!-- Size of the star icon on the favorites tile. -->
     <dimen name="favorites_star_icon_size">12dp</dimen>
@@ -114,11 +116,11 @@
     <dimen name="search_box_icon_margin">4dp</dimen>
     <dimen name="search_box_search_icon_padding">4dp</dimen>
     <!-- Left margin of the text field in the search box. -->
-    <dimen name="search_box_text_left_margin">8dp</dimen>
+    <dimen name="search_box_text_left_margin">27dp</dimen>
     <!-- Size of the icon (voice search, close search) in the search box. -->
     <dimen name="search_box_icon_size">28dp</dimen>
     <!-- Elevation of the search box -->
-    <dimen name="search_box_elevation">4dp</dimen>
+    <dimen name="search_box_elevation">3dp</dimen>
 
     <!-- Size of text in tabs. -->
     <dimen name="tab_height">43dp</dimen>
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 6a0706f..df2a87c 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -1007,7 +1007,9 @@
      */
     @Override
     public void onDragStarted(int x, int y, PhoneFavoriteSquareTileView view) {
-        mActionBarController.slideActionBarUp(true);
+        if (mListsFragment.isPaneOpen()) {
+            mActionBarController.slideActionBarUp(true);
+        }
         mRemoveViewContainer.setVisibility(View.VISIBLE);
     }
 
@@ -1020,7 +1022,9 @@
      */
     @Override
     public void onDragFinished(int x, int y) {
-        mActionBarController.slideActionBarDown(true);
+        if (mListsFragment.isPaneOpen()) {
+            mActionBarController.slideActionBarDown(true);
+        }
         mRemoveViewContainer.setVisibility(View.GONE);
     }
 
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index 30e0e0f..3de714d 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -338,6 +338,10 @@
         return mIsPanelOpen && mActionBar != null;
     }
 
+    public boolean isPaneOpen() {
+        return mIsPanelOpen;
+    }
+
     private void setupPaneLayout(OverlappingPaneLayout paneLayout) {
         // TODO: Remove the notion of a capturable view. The entire view be slideable, once
         // the framework better supports nested scrolling.
diff --git a/src/com/android/dialer/list/ShortcutCardsAdapter.java b/src/com/android/dialer/list/ShortcutCardsAdapter.java
index a39bed5..2ce7ea4 100644
--- a/src/com/android/dialer/list/ShortcutCardsAdapter.java
+++ b/src/com/android/dialer/list/ShortcutCardsAdapter.java
@@ -55,9 +55,11 @@
 
     private final ListsFragment mFragment;
 
-    private final int mCallLogMargin;
+    private final int mCallLogMarginHorizontal;
+    private final int mCallLogMarginTop;
     private final int mCallLogMarginBottom;
     private final int mCallLogPaddingStart;
+    private final int mCallLogPaddingTop;
     private final int mCallLogPaddingBottom;
     private final int mCardMaxHorizontalClip;
 
@@ -106,13 +108,18 @@
         final Resources resources = context.getResources();
         mContext = context;
         mFragment = fragment;
-        mCardMaxHorizontalClip = resources.getDimensionPixelSize(
-                R.dimen.recent_call_log_item_horizontal_clip_limit);
-        mCallLogMargin = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_margin);
+        mCardMaxHorizontalClip =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_horizontal_clip_limit);
+        mCallLogMarginHorizontal =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_margin_horizontal);
+        mCallLogMarginTop =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_margin_top);
         mCallLogMarginBottom =
                 resources.getDimensionPixelSize(R.dimen.recent_call_log_item_margin_bottom);
         mCallLogPaddingStart =
                 resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding_start);
+        mCallLogPaddingTop =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding_top);
         mCallLogPaddingBottom =
                 resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding_bottom);
 
@@ -222,14 +229,20 @@
             final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
                     FrameLayout.LayoutParams.MATCH_PARENT,
                     FrameLayout.LayoutParams.WRAP_CONTENT);
-            params.setMargins(mCallLogMargin, mCallLogMargin, mCallLogMargin, mCallLogMarginBottom);
+            params.setMargins(
+                    mCallLogMarginHorizontal,
+                    mCallLogMarginTop,
+                    mCallLogMarginHorizontal,
+                    mCallLogMarginBottom);
             view.setLayoutParams(params);
 
             LinearLayout actionView =
                     (LinearLayout)view.findViewById(R.id.primary_action_view);
             actionView.setPaddingRelative(
-                    mCallLogPaddingStart, actionView.getPaddingTop(),
-                    actionView.getPaddingEnd(), mCallLogPaddingBottom);
+                    mCallLogPaddingStart,
+                    mCallLogPaddingTop,
+                    actionView.getPaddingEnd(),
+                    mCallLogPaddingBottom);
 
             view.setTranslationZ(getResources().getDimensionPixelSize(
                     R.dimen.recent_call_log_item_translation_z));
