Mercurial > pidgin.yaz
comparison libpurple/protocols/msn/msg.c @ 30316:71fe96932a8e
Use serv_got_im/serv_got_chat_in instead of purple_conversation_write so
that Pidgin will play sounds when a wink or voiceclip is received.
Fixes #10929.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Tue, 11 May 2010 04:40:07 +0000 |
parents | 0f1df8098d00 |
children | 46275cca345e 3f6daa187665 |
comparison
equal
deleted
inserted
replaced
30314:cb9afb16cc3d | 30316:71fe96932a8e |
---|---|
937 const char *msg, const char *filename) | 937 const char *msg, const char *filename) |
938 { | 938 { |
939 char *username, *str; | 939 char *username, *str; |
940 PurpleAccount *account; | 940 PurpleAccount *account; |
941 PurpleBuddy *b; | 941 PurpleBuddy *b; |
942 PurpleConnection *pc; | |
943 gboolean chat; | |
942 | 944 |
943 account = swboard->session->account; | 945 account = swboard->session->account; |
946 pc = purple_account_get_connection(account); | |
944 | 947 |
945 if ((b = purple_find_buddy(account, who)) != NULL) | 948 if ((b = purple_find_buddy(account, who)) != NULL) |
946 username = g_markup_escape_text(purple_buddy_get_alias(b), -1); | 949 username = g_markup_escape_text(purple_buddy_get_alias(b), -1); |
947 else | 950 else |
948 username = g_markup_escape_text(who, -1); | 951 username = g_markup_escape_text(who, -1); |
949 str = g_strdup_printf(msg, username, filename); | 952 str = g_strdup_printf(msg, username, filename); |
950 g_free(username); | 953 g_free(username); |
951 | 954 |
955 swboard->flag |= MSN_SB_FLAG_IM; | |
956 if (swboard->current_users > 1) | |
957 chat = TRUE; | |
958 else | |
959 chat = FALSE; | |
960 | |
952 if (swboard->conv == NULL) { | 961 if (swboard->conv == NULL) { |
953 if (swboard->current_users > 1) | 962 if (chat) |
954 swboard->conv = purple_find_chat(account->gc, swboard->chat_id); | 963 swboard->conv = purple_find_chat(account->gc, swboard->chat_id); |
955 else { | 964 else { |
956 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, | 965 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, |
957 who, account); | 966 who, account); |
958 if (swboard->conv == NULL) | 967 if (swboard->conv == NULL) |
959 swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who); | 968 swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who); |
960 } | 969 } |
961 } | 970 } |
962 swboard->flag |= MSN_SB_FLAG_IM; | 971 |
963 | 972 if (chat) |
964 purple_conversation_write(swboard->conv, NULL, str, PURPLE_MESSAGE_SYSTEM, time(NULL)); | 973 serv_got_chat_in(pc, |
974 purple_conv_chat_get_id(PURPLE_CONV_CHAT(swboard->conv)), | |
975 who, PURPLE_MESSAGE_RECV|PURPLE_MESSAGE_SYSTEM, str, | |
976 time(NULL)); | |
977 else | |
978 serv_got_im(pc, who, str, PURPLE_MESSAGE_RECV|PURPLE_MESSAGE_SYSTEM, | |
979 time(NULL)); | |
965 g_free(str); | 980 g_free(str); |
966 | 981 |
967 } | 982 } |
968 | 983 |
969 /* TODO: Make these not be such duplicates of each other */ | 984 /* TODO: Make these not be such duplicates of each other */ |