diff options
Diffstat (limited to 'chrome/browser/gtk/menu_gtk.cc')
-rw-r--r-- | chrome/browser/gtk/menu_gtk.cc | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/chrome/browser/gtk/menu_gtk.cc b/chrome/browser/gtk/menu_gtk.cc index 3f8f7a9..fc349cd 100644 --- a/chrome/browser/gtk/menu_gtk.cc +++ b/chrome/browser/gtk/menu_gtk.cc @@ -40,19 +40,17 @@ MenuGtk::MenuGtk(MenuGtk::Delegate* delegate, : delegate_(delegate), accel_group_(accel_group), menu_(gtk_menu_new()) { - g_object_ref_sink(menu_); - BuildMenuIn(menu_, menu_data); + BuildMenuIn(menu_.get(), menu_data); } MenuGtk::MenuGtk(MenuGtk::Delegate* delegate) : delegate_(delegate), menu_(gtk_menu_new()) { - g_object_ref_sink(menu_); BuildMenuFromDelegate(); } MenuGtk::~MenuGtk() { - g_object_unref(menu_); + menu_.Destroy(); } void MenuGtk::Popup(GtkWidget* widget, GdkEvent* event) { @@ -64,20 +62,20 @@ void MenuGtk::Popup(GtkWidget* widget, GdkEvent* event) { } void MenuGtk::Popup(GtkWidget* widget, gint button_type, guint32 timestamp) { - gtk_container_foreach(GTK_CONTAINER(menu_), SetMenuItemInfo, this); + gtk_container_foreach(GTK_CONTAINER(menu_.get()), SetMenuItemInfo, this); - gtk_menu_popup(GTK_MENU(menu_), NULL, NULL, + gtk_menu_popup(GTK_MENU(menu_.get()), NULL, NULL, MenuPositionFunc, widget, button_type, timestamp); } void MenuGtk::PopupAsContext() { - gtk_container_foreach(GTK_CONTAINER(menu_), SetMenuItemInfo, this); + gtk_container_foreach(GTK_CONTAINER(menu_.get()), SetMenuItemInfo, this); // TODO(estade): |button| value of 0 (6th argument) is not strictly true, // but does it matter? - gtk_menu_popup(GTK_MENU(menu_), NULL, NULL, NULL, NULL, 0, + gtk_menu_popup(GTK_MENU(menu_.get()), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time()); } @@ -180,7 +178,8 @@ void MenuGtk::BuildMenuFromDelegate() { G_CALLBACK(OnMenuItemActivatedById), this); gtk_widget_show(menu_item); - gtk_menu_append(menu_, menu_item); + // TODO(estade): gtk_menu_append is deprecated. + gtk_menu_append(menu_.get(), menu_item); } } |