diff options
author | Michael Kolb <kolby@google.com> | 2011-01-28 13:48:50 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-28 13:48:50 -0800 |
commit | b2ba52bf182bf9e38f4a2367a7e137a1c4b4022a (patch) | |
tree | a891a6e0e650a1a8d051da36f2ef7b3255bb05f2 /src/com/android | |
parent | 87a44887f87c9a9f9e1d38d45a6798721140dea9 (diff) | |
parent | 47171d85e40b3d89e347f950d157036f6b0c1d8d (diff) | |
download | packages_apps_Browser-b2ba52bf182bf9e38f4a2367a7e137a1c4b4022a.zip packages_apps_Browser-b2ba52bf182bf9e38f4a2367a7e137a1c4b4022a.tar.gz packages_apps_Browser-b2ba52bf182bf9e38f4a2367a7e137a1c4b4022a.tar.bz2 |
Merge "fix focus handling in url input" into honeycomb
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/browser/TitleBarXLarge.java | 35 | ||||
-rw-r--r-- | src/com/android/browser/UrlInputView.java | 6 | ||||
-rw-r--r-- | src/com/android/browser/XLargeUi.java | 5 |
3 files changed, 26 insertions, 20 deletions
diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java index 2fd9d3d..0dcece6 100644 --- a/src/com/android/browser/TitleBarXLarge.java +++ b/src/com/android/browser/TitleBarXLarge.java @@ -133,7 +133,7 @@ public class TitleBarXLarge extends TitleBarBase mUrlInput.setOnFocusChangeListener(this); mUrlInput.setSelectAllOnFocus(true); mUrlInput.addTextChangedListener(this); - setUrlMode(false); + setEditMode(false); } void updateNavigationState(Tab tab) { @@ -187,7 +187,11 @@ public class TitleBarXLarge extends TitleBarBase if (!mEditable && hasFocus) { mUi.editUrl(false); } else { - setUrlMode(hasFocus); + if (hasFocus) { + setEditMode(hasFocus); + } else { + mUrlInput.stopEditing(); + } } mUrlContainer.setBackgroundDrawable(hasFocus ? mFocusDrawable : mUnfocusDrawable); @@ -266,7 +270,7 @@ public class TitleBarXLarge extends TitleBarBase private void clearOrClose() { if (TextUtils.isEmpty(mUrlInput.getText())) { // close - setUrlMode(false); + mUrlInput.stopEditing(); } else { // clear mUrlInput.setText(""); @@ -307,15 +311,16 @@ public class TitleBarXLarge extends TitleBarBase @Override public void onDismiss() { - Tab currentTab = mUi.getActiveTab(); - if (currentTab != null && currentTab.getWebView() != null) { - currentTab.getWebView().requestFocus(); - } + final Tab currentTab = mUi.getActiveTab(); mUi.hideFakeTitleBar(); - // if top != null current must be set - if ((currentTab != null) && !mInVoiceMode) { - setDisplayTitle(currentTab.getUrl()); - } + post(new Runnable() { + public void run() { + TitleBarXLarge.this.clearFocus(); + if ((currentTab != null) && !mInVoiceMode) { + setDisplayTitle(currentTab.getUrl()); + } + } + }); } /** @@ -330,8 +335,8 @@ public class TitleBarXLarge extends TitleBarBase } } - void setUrlMode(boolean focused) { - if (focused) { + void setEditMode(boolean edit) { + if (edit) { mUrlInput.setDropDownWidth(mUrlContainer.getWidth()); mUrlInput.setDropDownHorizontalOffset(-mUrlInput.getLeft()); mSearchButton.setVisibility(View.GONE); @@ -343,9 +348,6 @@ public class TitleBarXLarge extends TitleBarBase mWebIcon.setImageResource(R.drawable.ic_search_holo_dark); updateSearchMode(); } else { - if (mUrlInput.hasFocus()) { - mUrlInput.clearFocus(); - } mGoButton.setVisibility(View.GONE); mVoiceSearch.setVisibility(View.GONE); mStar.setVisibility(View.VISIBLE); @@ -454,4 +456,5 @@ public class TitleBarXLarge extends TitleBarBase void setIncognitoMode(boolean incognito) { mUrlInput.setIncognitoMode(incognito); } + } diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java index 3e49c06..23e412d 100644 --- a/src/com/android/browser/UrlInputView.java +++ b/src/com/android/browser/UrlInputView.java @@ -166,14 +166,16 @@ public class UrlInputView extends AutoCompleteTextView performFiltering(getText().toString(), 0); showDropDown(); } - } else { - finishInput(null, null, null); } if (mWrappedFocusListener != null) { mWrappedFocusListener.onFocusChange(v, hasFocus); } } + void stopEditing() { + finishInput(null, null, null); + } + public void setUrlInputListener(UrlInputListener listener) { mListener = listener; } diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java index 2aaa029..0fa38cf 100644 --- a/src/com/android/browser/XLargeUi.java +++ b/src/com/android/browser/XLargeUi.java @@ -304,7 +304,7 @@ public class XLargeUi extends BaseUi implements ScrollListener { @Override protected void hideFakeTitleBar() { if (isFakeTitleBarShowing()) { - mFakeTitleBar.setUrlMode(false); + mFakeTitleBar.setEditMode(false); mContentView.removeView(mFakeTitleBar); mTabBar.onHideTitleBar(); } @@ -417,7 +417,8 @@ public class XLargeUi extends BaseUi implements ScrollListener { return true; } } - if (event.isPrintingKey() && !mFakeTitleBar.isEditingUrl()) { + boolean ctrl = event.hasModifiers(KeyEvent.META_CTRL_ON); + if (!ctrl && event.isPrintingKey() && !mFakeTitleBar.isEditingUrl()) { editUrl(true); return mContentView.dispatchKeyEvent(event); } |