summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-27 23:29:21 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-27 23:29:21 +0000
commit48abb0046f935690ea83d0290dc6ff0a60d99b27 (patch)
treeeac7932bef4a68aab43c67c7a64eafcb85ea91f8 /chrome
parentb1d3f6c4485f7a1f0587dcb203339a45325fb419 (diff)
downloadchromium_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.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(