| Index: chrome/browser/ui/gtk/global_bookmark_menu.cc
|
| diff --git a/chrome/browser/ui/gtk/global_bookmark_menu.cc b/chrome/browser/ui/gtk/global_bookmark_menu.cc
|
| index 5fc74ceb6b7903d8ab8de8c9a966739a772f202a..0003883fb22eb2b40637381d8800f4972620e6f6 100644
|
| --- a/chrome/browser/ui/gtk/global_bookmark_menu.cc
|
| +++ b/chrome/browser/ui/gtk/global_bookmark_menu.cc
|
| @@ -68,8 +68,9 @@ GlobalBookmarkMenu::~GlobalBookmarkMenu() {
|
| profile_->GetBookmarkModel()->RemoveObserver(this);
|
| }
|
|
|
| -void GlobalBookmarkMenu::Init(GtkWidget* bookmark_menu) {
|
| - bookmark_menu_ = bookmark_menu;
|
| +void GlobalBookmarkMenu::Init(GtkWidget* bookmark_menu,
|
| + GtkWidget* bookmark_menu_item) {
|
| + bookmark_menu_.Own(bookmark_menu);
|
|
|
| EnsureMenuItemFunctions();
|
| if (gtk_menu_item_set_label_sym) {
|
| @@ -88,8 +89,6 @@ void GlobalBookmarkMenu::RebuildMenuInFuture() {
|
| }
|
|
|
| void GlobalBookmarkMenu::RebuildMenu() {
|
| -
|
| -
|
| BookmarkModel* model = profile_->GetBookmarkModel();
|
| DCHECK(model);
|
| DCHECK(model->IsLoaded());
|
| @@ -98,8 +97,8 @@ void GlobalBookmarkMenu::RebuildMenu() {
|
|
|
| const BookmarkNode* bar_node = model->GetBookmarkBarNode();
|
| if (bar_node->child_count()) {
|
| - AddBookmarkMenuItem(bookmark_menu_, gtk_separator_menu_item_new());
|
| - AddNodeToMenu(bar_node, bookmark_menu_);
|
| + AddBookmarkMenuItem(bookmark_menu_.get(), gtk_separator_menu_item_new());
|
| + AddNodeToMenu(bar_node, bookmark_menu_.get());
|
| }
|
|
|
| // Only display the other bookmarks folder in the menu if it has items in it.
|
| @@ -108,7 +107,7 @@ void GlobalBookmarkMenu::RebuildMenu() {
|
| GtkWidget* submenu = gtk_menu_new();
|
| AddNodeToMenu(other_node, submenu);
|
|
|
| - AddBookmarkMenuItem(bookmark_menu_, gtk_separator_menu_item_new());
|
| + AddBookmarkMenuItem(bookmark_menu_.get(), gtk_separator_menu_item_new());
|
|
|
| GtkWidget* menu_item = gtk_image_menu_item_new_with_label(
|
| l10n_util::GetStringUTF8(IDS_BOOMARK_BAR_OTHER_FOLDER_NAME).c_str());
|
| @@ -117,7 +116,7 @@ void GlobalBookmarkMenu::RebuildMenu() {
|
| GTK_IMAGE_MENU_ITEM(menu_item),
|
| gtk_image_new_from_pixbuf(default_folder_));
|
|
|
| - AddBookmarkMenuItem(bookmark_menu_, menu_item);
|
| + AddBookmarkMenuItem(bookmark_menu_.get(), menu_item);
|
| }
|
| }
|
|
|
| @@ -205,7 +204,7 @@ GtkWidget* GlobalBookmarkMenu::MenuItemForNode(const BookmarkNode* node) {
|
| void GlobalBookmarkMenu::ClearBookmarkMenu() {
|
| bookmark_nodes_.clear();
|
|
|
| - gtk_container_foreach(GTK_CONTAINER(bookmark_menu_),
|
| + gtk_container_foreach(GTK_CONTAINER(bookmark_menu_.get()),
|
| &ClearBookmarkItemCallback,
|
| NULL);
|
| }
|
|
|