summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/bookmark_bar_view.cc
diff options
context:
space:
mode:
authormhm@chromium.org <mhm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-08 06:28:17 +0000
committermhm@chromium.org <mhm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-08 06:28:17 +0000
commit36f52c000fd60e1754e4b64aad0b2890291b516e (patch)
treeb370923cd59f915aa594a8ff8d7ef7f4a6349c0c /chrome/browser/views/bookmark_bar_view.cc
parentc07a2eb601d3dec8db44a258add3e0be9d0dd5c7 (diff)
downloadchromium_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.cc23
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_);
}