]> git.0d.be Git - empathy.git/commitdiff
Make Send File context menu choose the first capable contact.
authorTravis Reitter <treitter@gmail.com>
Wed, 11 Aug 2010 17:33:40 +0000 (10:33 -0700)
committerTravis Reitter <treitter@gmail.com>
Mon, 16 Aug 2010 15:59:00 +0000 (08:59 -0700)
libempathy-gtk/empathy-individual-menu.c

index 61269e7b51a8e25aec3b44f97d36af5f6b9c08a5..67baa3db1d38533a32d425e431d384e1d2caf8fe 100644 (file)
@@ -458,17 +458,12 @@ empathy_individual_log_menu_item_new (FolksIndividual *individual)
 }
 
 static void
-individual_file_transfer_menu_item_activate_cb (FolksIndividual *individual)
+empathy_individual_file_transfer_menu_item_activated (GtkMenuItem *item,
+    EmpathyContact *contact)
 {
-  EmpathyContact *contact;
-
-  contact = empathy_contact_dup_from_folks_individual (individual);
-
   g_return_if_fail (EMPATHY_IS_CONTACT (contact));
 
   empathy_send_file_with_file_chooser (contact);
-
-  g_object_unref (contact);
 }
 
 GtkWidget *
@@ -476,25 +471,18 @@ empathy_individual_file_transfer_menu_item_new (FolksIndividual *individual)
 {
   GtkWidget *item;
   GtkWidget *image;
-  EmpathyContact *contact;
 
   g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
 
-  contact = empathy_contact_dup_from_folks_individual (individual);
-
-  g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
-
   item = gtk_image_menu_item_new_with_mnemonic (_("Send File"));
   image = gtk_image_new_from_icon_name (EMPATHY_IMAGE_DOCUMENT_SEND,
-                GTK_ICON_SIZE_MENU);
-  gtk_widget_set_sensitive (item, empathy_contact_can_send_files (contact));
+      GTK_ICON_SIZE_MENU);
   gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
   gtk_widget_show (image);
 
-  g_signal_connect_swapped (item, "activate",
-      G_CALLBACK (individual_file_transfer_menu_item_activate_cb), individual);
-
-  g_object_unref (contact);
+  menu_item_set_first_contact (item, individual,
+      G_CALLBACK (empathy_individual_file_transfer_menu_item_activated),
+      empathy_contact_can_send_files);
 
   return item;
 }