From 48abb0046f935690ea83d0290dc6ff0a60d99b27 Mon Sep 17 00:00:00 2001 From: "sky@chromium.org" Date: Tue, 27 Oct 2009 23:29:21 +0000 Subject: Lands http://codereview.chromium.org/291006 for Pierre: Open all bookmarks in a bookmark menu folder according to the window disposition derived from the event flags. This is currently only possible with a middle click on the top level bookmark bar button. BUG=19597 TEST=Control click a folder on your bookmark bar, and thorougly test bookmark bar, especially with folders. Review URL: http://codereview.chromium.org/334047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30281 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/views/bookmark_bar_view.cc | 12 +++++++++--- chrome/browser/views/bookmark_menu_controller_views.cc | 14 ++++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) (limited to 'chrome') 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 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( -- cgit v1.1