Index: chrome/browser/ui/views/location_bar/location_icon_view.cc |
diff --git a/chrome/browser/ui/views/location_bar/location_icon_view.cc b/chrome/browser/ui/views/location_bar/location_icon_view.cc |
index 78af5ff7df46b6f6106bdf55713bdb1ad2a0d0db..b40af8d5d64cc1d8b6e1757cddc3119e9c9cbb22 100644 |
--- a/chrome/browser/ui/views/location_bar/location_icon_view.cc |
+++ b/chrome/browser/ui/views/location_bar/location_icon_view.cc |
@@ -6,11 +6,13 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/ui/views/location_bar/location_bar_view.h" |
+#include "chrome/browser/ui/views/website_settings/website_settings_popup_view.h" |
#include "chrome/grit/generated_resources.h" |
#include "ui/base/l10n/l10n_util.h" |
LocationIconView::LocationIconView(LocationBarView* location_bar) |
- : page_info_helper_(this, location_bar) { |
+ : suppress_mouse_released_action_(false), |
+ page_info_helper_(this, location_bar) { |
SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_LOCATION_ICON)); |
} |
@@ -30,13 +32,22 @@ bool LocationIconView::OnMousePressed(const ui::MouseEvent& event) { |
model->PasteAndGo(text); |
} |
- // Showing the bubble on mouse release is standard button behavior. |
+ suppress_mouse_released_action_ = WebsiteSettingsPopupView::IsPopupShowing(); |
return true; |
} |
void LocationIconView::OnMouseReleased(const ui::MouseEvent& event) { |
if (event.IsOnlyMiddleMouseButton()) |
return; |
+ |
+ // If this is the second click on this view then the bubble was showing on |
+ // the mouse pressed event and is hidden now. Prevent the bubble from |
+ // reshowing by doing nothing here. |
+ if (suppress_mouse_released_action_) { |
+ suppress_mouse_released_action_ = false; |
+ return; |
+ } |
+ |
OnClickOrTap(event); |
} |