# HG changeset patch # User Mike Ruprecht # Date 1233305547 0 # Node ID a6e53d23bcbbe913b74b4a80e703489bc480955f # Parent cd720cb4b47c9f0a53f288b657d3a2152a31c01f Use request API for a media invitation. diff -r cd720cb4b47c -r a6e53d23bcbb pidgin/gtkmedia.c --- a/pidgin/gtkmedia.c Fri Jan 30 08:09:20 2009 +0000 +++ b/pidgin/gtkmedia.c Fri Jan 30 08:52:27 2009 +0000 @@ -30,6 +30,7 @@ #include "media.h" #include "mediamanager.h" #include "pidgin.h" +#include "request.h" #include "gtkmedia.h" @@ -221,8 +222,6 @@ g_signal_connect(G_OBJECT(media), "delete-event", G_CALLBACK(pidgin_media_delete_event_cb), media); - - gtk_widget_show(GTK_WIDGET(media)); } static gboolean @@ -389,6 +388,7 @@ { pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED); pidgin_media_emit_message(gtkmedia, _("Call in progress.")); + gtk_widget_show(GTK_WIDGET(gtkmedia)); } static gboolean @@ -732,8 +732,21 @@ { PidginMedia *gtkmedia = PIDGIN_MEDIA( pidgin_media_new(media, screenname)); + gboolean initiator; gtkmedia->priv->pc = pc; + g_object_get(G_OBJECT(media), "initiator", &initiator, NULL); + if (initiator == FALSE) { + gchar *message = g_strdup_printf("%s wishes to start a " + "media session with you\n", screenname); + purple_request_accept_cancel(media, "Media invitation", + message, NULL, 1, (void*)pc, screenname, + NULL, media, purple_media_accept, + purple_media_reject); + g_free(message); + } else + gtk_widget_show(GTK_WIDGET(gtkmedia)); + return TRUE; }