# HG changeset patch # User maiku@pidgin.im # Date 1251352669 0 # Node ID 7a66b8d66456dc0ea4450bb84759d79bb4ce6274 # Parent 0b3142f3edb4a8f74d32547659e7ad55aac45e3c There's no reason to ask for acceptance if the stream has been accepted. Also, there's no reason to keep the media request open if the stream has already been accepted. This helps for auto-accepting media sessions. diff -r 0b3142f3edb4 -r 7a66b8d66456 pidgin/gtkmedia.c --- a/pidgin/gtkmedia.c Tue Aug 25 09:37:38 2009 +0000 +++ b/pidgin/gtkmedia.c Thu Aug 27 05:57:49 2009 +0000 @@ -499,13 +499,14 @@ } gtkmedia->priv->request_type = PURPLE_MEDIA_NONE; - - purple_request_accept_cancel(gtkmedia, _("Incoming Call"), - message, NULL, PURPLE_DEFAULT_ACTION_NONE, - (void*)account, gtkmedia->priv->screenname, NULL, - gtkmedia->priv->media, - pidgin_media_accept_cb, - pidgin_media_reject_cb); + if (!purple_media_accepted(gtkmedia->priv->media, NULL, NULL)) { + purple_request_accept_cancel(gtkmedia, _("Incoming Call"), + message, NULL, PURPLE_DEFAULT_ACTION_NONE, + (void*)account, gtkmedia->priv->screenname, + NULL, gtkmedia->priv->media, + pidgin_media_accept_cb, + pidgin_media_reject_cb); + } pidgin_media_emit_message(gtkmedia, message); g_free(message); return FALSE; @@ -772,6 +773,8 @@ pidgin_media_emit_message(gtkmedia, _("You have rejected the call.")); } else if (type == PURPLE_MEDIA_INFO_ACCEPT) { + if (local == TRUE) + purple_request_close_with_handle(gtkmedia); pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED); pidgin_media_emit_message(gtkmedia, _("Call in progress.")); gtk_statusbar_push(GTK_STATUSBAR(gtkmedia->priv->statusbar),