diff pidgin/gtkmedia.c @ 26143:f6a98b2b8d92

Add the accepted signal and make the accept button go away immediately.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Tue, 27 Jan 2009 22:18:01 +0000
parents c334a9e17426
children 685c8f5f85c7
line wrap: on
line diff
--- a/pidgin/gtkmedia.c	Tue Jan 27 09:40:24 2009 +0000
+++ b/pidgin/gtkmedia.c	Tue Jan 27 22:18:01 2009 +0000
@@ -357,6 +357,14 @@
 	g_signal_emit(gtkmedia, pidgin_media_signals[ERROR], 0, error);
 }
 
+static void
+pidgin_media_accepted_cb(PurpleMedia *media, const gchar *session_id,
+		const gchar *participant, PidginMedia *gtkmedia)
+{
+	pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED);
+	pidgin_media_emit_message(gtkmedia, _("Call in progress."));
+}
+
 static gboolean
 plug_delete_event_cb(GtkWidget *widget, gpointer data)
 {
@@ -582,9 +590,6 @@
 		GstElement *audiosendbin = NULL, *audiorecvbin = NULL;
 		GstElement *videosendbin = NULL, *videorecvbin = NULL;
 
-		pidgin_media_emit_message(gtkmedia, _("Call in progress."));
-		pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED);
-
 		purple_media_get_elements(media, &audiosendbin, &audiorecvbin,
 					  &videosendbin, &videorecvbin);
 
@@ -625,6 +630,8 @@
 
 			g_signal_connect(G_OBJECT(media->priv->media), "error",
 				G_CALLBACK(pidgin_media_error_cb), media);
+			g_signal_connect(G_OBJECT(media->priv->media), "accepted",
+				G_CALLBACK(pidgin_media_accepted_cb), media);
 			g_signal_connect(G_OBJECT(media->priv->media), "state-changed",
 				G_CALLBACK(pidgin_media_state_changed_cb), media);
 			break;