Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1054)

Unified Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.mm

Issue 23522055: [Mac] Show context menu on empty BMB item. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698