diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-27 23:29:21 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-27 23:29:21 +0000 |
commit | 48abb0046f935690ea83d0290dc6ff0a60d99b27 (patch) | |
tree | eac7932bef4a68aab43c67c7a64eafcb85ea91f8 /chrome | |
parent | b1d3f6c4485f7a1f0587dcb203339a45325fb419 (diff) | |
download | chromium_src-48abb0046f935690ea83d0290dc6ff0a60d99b27.zip chromium_src-48abb0046f935690ea83d0290dc6ff0a60d99b27.tar.gz chromium_src-48abb0046f935690ea83d0290dc6ff0a60d99b27.tar.bz2 |
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
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/views/bookmark_bar_view.cc | 12 | ||||
-rw-r--r-- | chrome/browser/views/bookmark_menu_controller_views.cc | 14 |
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( |