summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/views/bookmark_bar_view.cc12
-rw-r--r--chrome/browser/views/bookmark_menu_controller_views.cc14
2 files changed, 19 insertions, 7 deletions
diff --git a/chrome/browser/views/bookmark_bar_view.cc b/chrome/browser/views/bookmark_bar_view.cc
index 2e9b167..492f323c 100644
--- a/chrome/browser/views/bookmark_bar_view.cc
+++ b/chrome/browser/views/bookmark_bar_view.cc
@@ -227,9 +227,15 @@ class BookmarkFolderButton : public views::MenuButton {
}
virtual bool IsTriggerableEvent(const views::MouseEvent& e) {
- // This is hard coded to avoid potential notification on left mouse down,
- // which we want to show the menu.
- return e.IsMiddleMouseButton();
+ // Left clicks should show the menu contents and right clicks should show
+ // the context menu. They should not trigger the opening of underlying urls.
+ if (e.GetFlags() == views::MouseEvent::EF_LEFT_BUTTON_DOWN ||
+ e.GetFlags() == views::MouseEvent::EF_RIGHT_BUTTON_DOWN)
+ return false;
+
+ WindowOpenDisposition disposition(
+ event_utils::DispositionFromEventFlags(e.GetFlags()));
+ return disposition != CURRENT_TAB;
}
virtual void Paint(gfx::Canvas *canvas) {
diff --git a/chrome/browser/views/bookmark_menu_controller_views.cc b/chrome/browser/views/bookmark_menu_controller_views.cc
index 80bf767..45620f7 100644
--- a/chrome/browser/views/bookmark_menu_controller_views.cc
+++ b/chrome/browser/views/bookmark_menu_controller_views.cc
@@ -89,10 +89,16 @@ bool BookmarkMenuController::IsTriggerableEvent(const views::MouseEvent& e) {
void BookmarkMenuController::ExecuteCommand(int id, int mouse_event_flags) {
DCHECK(page_navigator_);
DCHECK(menu_id_to_node_map_.find(id) != menu_id_to_node_map_.end());
- GURL url = menu_id_to_node_map_[id]->GetURL();
- page_navigator_->OpenURL(
- url, GURL(), event_utils::DispositionFromEventFlags(mouse_event_flags),
- PageTransition::AUTO_BOOKMARK);
+
+ const BookmarkNode* node = menu_id_to_node_map_[id];
+ std::vector<const BookmarkNode*> selection;
+ selection.push_back(node);
+
+ WindowOpenDisposition initial_disposition =
+ event_utils::DispositionFromEventFlags(mouse_event_flags);
+
+ bookmark_utils::OpenAll(parent_, profile_, page_navigator_, selection,
+ initial_disposition);
}
bool BookmarkMenuController::GetDropFormats(