libpurple/plugins/autoaccept.c

changeset 40254
09402b6a28cf
parent 40124
cdce45867b10
child 40439
e9838d634d5e
--- a/libpurple/plugins/autoaccept.c	Sat Dec 21 03:12:10 2019 -0500
+++ b/libpurple/plugins/autoaccept.c	Sat Dec 21 20:14:34 2019 -0500
@@ -63,11 +63,17 @@
 }
 
 static void
-auto_accept_complete_cb(PurpleXfer *xfer, PurpleXfer *my)
+auto_accept_complete_cb(PurpleXfer *xfer, G_GNUC_UNUSED GParamSpec *pspec,
+                        G_GNUC_UNUSED gpointer data)
 {
-	if (xfer == my && purple_prefs_get_bool(PREF_NOTIFY) &&
-			!purple_conversations_find_im_with_account(purple_xfer_get_remote_user(xfer), purple_xfer_get_account(xfer)))
-	{
+	if (purple_xfer_get_status(xfer) != PURPLE_XFER_STATUS_DONE) {
+		return;
+	}
+
+	if (purple_prefs_get_bool(PREF_NOTIFY) &&
+	    !purple_conversations_find_im_with_account(
+	            purple_xfer_get_remote_user(xfer),
+	            purple_xfer_get_account(xfer))) {
 		char *message = g_strdup_printf(_("Autoaccepted file transfer of \"%s\" from \"%s\" completed."),
 					purple_xfer_get_filename(xfer), purple_xfer_get_remote_user(xfer));
 		purple_notify_info(NULL, _("Autoaccept complete"), message,
@@ -168,8 +174,8 @@
 				g_free(filename);
 			}
 
-			purple_signal_connect(purple_xfers_get_handle(), "file-recv-complete", handle,
-								PURPLE_CALLBACK(auto_accept_complete_cb), xfer);
+			g_signal_connect(xfer, "notify::status",
+			                 G_CALLBACK(auto_accept_complete_cb), NULL);
 			break;
 		case FT_REJECT:
 			purple_xfer_set_status(xfer, PURPLE_XFER_STATUS_CANCEL_LOCAL);

mercurial