Mercurial > pidgin
changeset 28102:7a66b8d66456
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.
author | maiku@pidgin.im |
---|---|
date | Thu, 27 Aug 2009 05:57:49 +0000 |
parents | 0b3142f3edb4 |
children | 268b821de5c5 |
files | pidgin/gtkmedia.c |
diffstat | 1 files changed, 10 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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),