diff options
author | mhm@chromium.org <mhm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-08 06:28:17 +0000 |
---|---|---|
committer | mhm@chromium.org <mhm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-08 06:28:17 +0000 |
commit | 36f52c000fd60e1754e4b64aad0b2890291b516e (patch) | |
tree | b370923cd59f915aa594a8ff8d7ef7f4a6349c0c /chrome/browser/views/bookmark_bar_view.cc | |
parent | c07a2eb601d3dec8db44a258add3e0be9d0dd5c7 (diff) | |
download | chromium_src-36f52c000fd60e1754e4b64aad0b2890291b516e.zip chromium_src-36f52c000fd60e1754e4b64aad0b2890291b516e.tar.gz chromium_src-36f52c000fd60e1754e4b64aad0b2890291b516e.tar.bz2 |
Clicking a bookmark does not discard omnibox edits
We need to manually reset the omnibox by reverting the text before the bookmark click event occurs
BUG=12627 (http://crbug.com/12627)
TEST=Clicked on bookmark while editing in omnibox to bring up suggestionlist, as well tried unfocused omnibox while clicking on a focused inpage browser link
Review URL: http://codereview.chromium.org/119292
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17849 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/bookmark_bar_view.cc')
-rw-r--r-- | chrome/browser/views/bookmark_bar_view.cc | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/chrome/browser/views/bookmark_bar_view.cc b/chrome/browser/views/bookmark_bar_view.cc index ba966593..d26165c1 100644 --- a/chrome/browser/views/bookmark_bar_view.cc +++ b/chrome/browser/views/bookmark_bar_view.cc @@ -26,6 +26,8 @@ #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/view_ids.h" #include "chrome/browser/views/event_utils.h" +#include "chrome/browser/views/frame/browser_view.h" +#include "chrome/browser/views/location_bar_view.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/notification_service.h" #include "chrome/common/page_transition_types.h" @@ -1186,15 +1188,22 @@ void BookmarkBarView::ButtonPressed(views::Button* sender) { node = model_->GetBookmarkBarNode()->GetChild(index); } DCHECK(page_navigator_); + + WindowOpenDisposition disposition_from_event_flags = + event_utils::DispositionFromEventFlags(sender->mouse_event_flags()); + + // Forcibly reset the location bar if the url is going to change in the + // current tab, since otherwise it won't discard any ongoing user edits, + // since it doesn't realize this is a user-initiated action. + if (disposition_from_event_flags == CURRENT_TAB) + browser()->window()->GetLocationBar()->Revert(); + if (node->is_url()) { - page_navigator_->OpenURL( - node->GetURL(), GURL(), - event_utils::DispositionFromEventFlags(sender->mouse_event_flags()), - PageTransition::AUTO_BOOKMARK); + page_navigator_->OpenURL(node->GetURL(), GURL(), + disposition_from_event_flags, PageTransition::AUTO_BOOKMARK); } else { - bookmark_utils::OpenAll( - GetWidget()->GetNativeView(), profile_, GetPageNavigator(), node, - event_utils::DispositionFromEventFlags(sender->mouse_event_flags())); + bookmark_utils::OpenAll(GetWidget()->GetNativeView(), profile_, + GetPageNavigator(), node, disposition_from_event_flags); } UserMetrics::RecordAction(L"ClickedBookmarkBarURLButton", profile_); } |