diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java
index ff06118..8dc8663 100644
--- a/src/com/android/browser/TitleBarXLarge.java
+++ b/src/com/android/browser/TitleBarXLarge.java
@@ -160,7 +160,7 @@
 
     void setUseQuickControls(boolean useQuickControls) {
         mUseQuickControls = useQuickControls;
-        mUrlInput.setReverseResults(mUseQuickControls);
+        mUrlInput.setUseQuickControls(mUseQuickControls);
         if (mUseQuickControls) {
             mBackButton.setVisibility(View.GONE);
             mForwardButton.setVisibility(View.GONE);
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 02c9f4c..3e49c06 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -60,6 +60,7 @@
     private boolean mLandscape;
     private boolean mInVoiceMode;
     private boolean mIncognitoMode;
+    private int mVOffset;
 
     public UrlInputView(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
@@ -86,6 +87,7 @@
         onConfigurationChanged(ctx.getResources().getConfiguration());
         setThreshold(1);
         setOnItemClickListener(this);
+        mVOffset = 0;
     }
 
     void setController(UiController controller) {
@@ -94,6 +96,13 @@
         setCustomSelectionActionModeCallback(urlSelectionMode);
     }
 
+    void setUseQuickControls(boolean useQuickControls) {
+        mVOffset = (useQuickControls
+                ? (int) getResources().getDimension(R.dimen.dropdown_offset)
+                : 0);
+        mAdapter.setReverseResults(useQuickControls);
+    }
+
     void setContainer(View container) {
         mContainer = container;
     }
@@ -135,7 +144,7 @@
         if (getLeft() != -getDropDownHorizontalOffset()) {
             setDropDownHorizontalOffset(-getLeft());
         }
-        setDropDownVerticalOffset(8);
+        setDropDownVerticalOffset(mVOffset);
     }
 
     @Override
@@ -247,10 +256,6 @@
 
     }
 
-    public void setReverseResults(boolean reverse) {
-        mAdapter.setReverseResults(reverse);
-    }
-
     public void setIncognitoMode(boolean incognito) {
         mIncognitoMode = incognito;
         mAdapter.setIncognitoMode(mIncognitoMode);
