Index: chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.mm |
=================================================================== |
--- chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.mm (revision 222257) |
+++ chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.mm (working copy) |
@@ -62,12 +62,12 @@ |
if (bookmarkNode_ == bookmarkModel->other_node()) { |
nodes.push_back(bookmarkNode_); |
parent = bookmarkModel->bookmark_bar_node(); |
- } else if (bookmarkNode_ != bookmarkModel->bookmark_bar_node()) { |
+ } else if (bookmarkNode_ == bookmarkModel->bookmark_bar_node()) { |
+ parent = bookmarkModel->bookmark_bar_node(); |
+ nodes.push_back(parent); |
+ } else if (bookmarkNode_) { |
nodes.push_back(bookmarkNode_); |
parent = bookmarkNode_->parent(); |
- } else { |
- parent = bookmarkModel->bookmark_bar_node(); |
- nodes.push_back(parent); |
} |
Browser* browser = [bookmarkBarController_ browser]; |
@@ -82,21 +82,23 @@ |
useWithPopUpButtonCell:NO]); |
} |
-- (NSMenu*)menuForBookmarkNode:(const BookmarkNode*)node { |
+- (BookmarkModel*)bookmarkModel { |
// Depending on timing, the model may not yet have been loaded. |
BookmarkModel* bookmarkModel = [bookmarkBarController_ bookmarkModel]; |
if (!bookmarkModel || !bookmarkModel->loaded()) |
return nil; |
+ return bookmarkModel; |
+} |
+- (NSMenu*)menuForBookmarkNode:(const BookmarkNode*)node { |
+ BookmarkModel* bookmarkModel = [self bookmarkModel]; |
+ |
// This may be called before the BMB view has been added to the window. In |
// that case, simply return nil so that BookmarkContextMenuController doesn't |
// get created with a nil window. |
- if (![bookmarkBarController_ browserWindow]) |
+ if (!bookmarkModel || ![bookmarkBarController_ browserWindow]) |
return nil; |
- if (!node) |
- node = bookmarkModel->bookmark_bar_node(); |
- |
// Rebuild the menu if it's for a different node than the last request. |
if (!menuController_ || node != bookmarkNode_) { |
bookmarkNode_ = node; |
@@ -105,6 +107,14 @@ |
return [menuController_ menu]; |
} |
+- (NSMenu*)menuForBookmarkBar { |
+ BookmarkModel* bookmarkModel = [self bookmarkModel]; |
+ if (!bookmarkModel) |
+ return nil; |
+ |
+ return [self menuForBookmarkNode:bookmarkModel->bookmark_bar_node()]; |
+} |
+ |
- (void)willExecuteCommand:(int)command { |
// Some items should not close currently-open sub-folder menus. |
switch (command) { |