summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/bookmark_manager_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/bookmark_manager_view.cc')
-rw-r--r--chrome/browser/views/bookmark_manager_view.cc71
1 files changed, 29 insertions, 42 deletions
diff --git a/chrome/browser/views/bookmark_manager_view.cc b/chrome/browser/views/bookmark_manager_view.cc
index 84b059c..289a9cc 100644
--- a/chrome/browser/views/bookmark_manager_view.cc
+++ b/chrome/browser/views/bookmark_manager_view.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -550,15 +550,13 @@ bool BookmarkManagerView::HandleKeystroke(
}
void BookmarkManagerView::ShowContextMenu(views::View* source,
- int x,
- int y,
+ const gfx::Point& p,
bool is_mouse_gesture) {
DCHECK(source == table_view_ || source == tree_view_);
bool is_table = (source == table_view_);
- ShowMenu(x, y,
- is_table ?
- BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_TABLE :
- BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_TREE);
+ ShowMenu(p, is_table ?
+ BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_TABLE :
+ BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_TREE);
}
void BookmarkManagerView::RunMenu(views::View* source, const gfx::Point& pt) {
@@ -568,14 +566,14 @@ void BookmarkManagerView::RunMenu(views::View* source, const gfx::Point& pt) {
if (!GetBookmarkModel()->IsLoaded())
return;
- int menu_x = pt.x();
- menu_x += UILayoutIsRightToLeft() ? (source->width() - 5) :
- (-source->width() + 5);
+ gfx::Point menu_pt(pt);
+ menu_pt.Offset(UILayoutIsRightToLeft() ?
+ (source->width() - 5) : (-source->width() + 5), 2);
if (source->GetID() == kOrganizeMenuButtonID) {
- ShowMenu(menu_x, pt.y() + 2,
+ ShowMenu(menu_pt,
BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_ORGANIZE_MENU);
} else if (source->GetID() == kToolsMenuButtonID) {
- ShowToolsMenu(menu_x, pt.y() + 2);
+ ShowToolsMenu(menu_pt);
} else {
NOTREACHED();
}
@@ -718,40 +716,30 @@ BookmarkModel* BookmarkManagerView::GetBookmarkModel() const {
}
void BookmarkManagerView::ShowMenu(
- int x, int y,
+ const gfx::Point& p,
BookmarkContextMenuControllerViews::ConfigurationType config) {
if (!GetBookmarkModel()->IsLoaded())
return;
- if (config == BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_TABLE ||
- (config ==
- BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_ORGANIZE_MENU &&
+ const BookmarkNode* parent = GetSelectedFolder();
+ std::vector<const BookmarkNode*> nodes;
+ typedef BookmarkContextMenuControllerViews BCMCV; // Such a long name!
+ if (config == BCMCV::BOOKMARK_MANAGER_TABLE ||
+ (config == BCMCV::BOOKMARK_MANAGER_ORGANIZE_MENU &&
table_view_->HasFocus())) {
- std::vector<const BookmarkNode*> nodes = GetSelectedTableNodes();
- const BookmarkNode* parent = GetSelectedFolder();
+ nodes = GetSelectedTableNodes();
if (!parent) {
- if (config ==
- BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_TABLE) {
- config =
- BookmarkContextMenuControllerViews::BOOKMARK_MANAGER_TABLE_OTHER;
- } else {
- config =
- BookmarkContextMenuControllerViews::
- BOOKMARK_MANAGER_ORGANIZE_MENU_OTHER;
- }
+ config = (config == BCMCV::BOOKMARK_MANAGER_TABLE) ?
+ BCMCV::BOOKMARK_MANAGER_TABLE_OTHER :
+ BCMCV::BOOKMARK_MANAGER_ORGANIZE_MENU_OTHER;
}
- BookmarkContextMenu menu(GetWindow()->GetNativeWindow(), profile_, NULL,
- parent, nodes, config);
- menu.RunMenuAt(gfx::Point(x, y));
} else {
- const BookmarkNode* node = GetSelectedFolder();
- std::vector<const BookmarkNode*> nodes;
- if (node)
- nodes.push_back(node);
- BookmarkContextMenu menu(GetWidget()->GetNativeView(), profile_, NULL,
- node, nodes, config);
- menu.RunMenuAt(gfx::Point(x, y));
+ if (parent)
+ nodes.push_back(parent);
}
+ BookmarkContextMenu menu(GetWidget()->GetNativeView(), profile_, NULL, parent,
+ nodes, config);
+ menu.RunMenuAt(p);
}
void BookmarkManagerView::OnCutCopyPaste(CutCopyPasteType type,
@@ -779,7 +767,7 @@ void BookmarkManagerView::OnCutCopyPaste(CutCopyPasteType type,
}
}
-void BookmarkManagerView::ShowToolsMenu(int x, int y) {
+void BookmarkManagerView::ShowToolsMenu(const gfx::Point& p) {
views::MenuItemView menu(this);
menu.AppendMenuItemWithLabel(
IDS_BOOKMARK_MANAGER_IMPORT_MENU,
@@ -787,10 +775,9 @@ void BookmarkManagerView::ShowToolsMenu(int x, int y) {
menu.AppendMenuItemWithLabel(
IDS_BOOKMARK_MANAGER_EXPORT_MENU,
l10n_util::GetString(IDS_BOOKMARK_MANAGER_EXPORT_MENU));
- views::MenuItemView::AnchorPosition anchor =
- UILayoutIsRightToLeft() ? views::MenuItemView::TOPRIGHT :
- views::MenuItemView::TOPLEFT;
- menu.RunMenuAt(GetWidget()->GetNativeView(), NULL, gfx::Rect(x, y, 0, 0),
+ views::MenuItemView::AnchorPosition anchor = UILayoutIsRightToLeft() ?
+ views::MenuItemView::TOPRIGHT : views::MenuItemView::TOPLEFT;
+ menu.RunMenuAt(GetWidget()->GetNativeView(), NULL, gfx::Rect(p, gfx::Size()),
anchor, true);
}