Mercurial > pidgin.yaz
changeset 10176:0109f3a518d2
[gaim-migrate @ 11291]
A few small changes, and one big one. Setting a status on an account
correctly updates the prpl. A number of prpls are broken though. MSN seems
to work. OSCAR rate limits. :/
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Sun, 14 Nov 2004 19:25:23 +0000 |
parents | 53410b84336f |
children | 82c1322c4b56 |
files | src/status.c |
diffstat | 1 files changed, 36 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/status.c Sun Nov 14 01:52:25 2004 +0000 +++ b/src/status.c Sun Nov 14 19:25:23 2004 +0000 @@ -575,7 +575,7 @@ static void notify_status_update(GaimPresence *presence, GaimStatus *old_status, - GaimStatus *new_status) + GaimStatus *new_status) { GaimPresenceContext context = gaim_presence_get_context(presence); @@ -583,12 +583,28 @@ if (context == GAIM_PRESENCE_CONTEXT_ACCOUNT) { + GaimAccount *account = gaim_presence_get_account(presence); GaimAccountUiOps *ops = gaim_accounts_get_ui_ops(); + if (gaim_account_is_connected(account)) + { + GaimPluginProtocolInfo *prpl_info = NULL; + GaimPlugin *prpl; + + prpl = gaim_find_prpl(gaim_account_get_protocol_id(account)); + + if (prpl != NULL) + { + prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(prpl); + + if (prpl_info != NULL && prpl_info->set_status != NULL) + prpl_info->set_status(account, new_status); + } + } + if (ops != NULL && ops->status_changed != NULL) { - ops->status_changed(gaim_presence_get_account(presence), - new_status); + ops->status_changed(account, new_status); } } else if (context == GAIM_PRESENCE_CONTEXT_CONV) @@ -1566,6 +1582,18 @@ return FALSE; } +const GList * +gaim_statuses_get_stored(void) +{ + return NULL; +} + +GaimStatus * +gaim_statuses_find_stored(const GaimStatusType *status_type, const char *id) +{ + return NULL; +} + void * gaim_statuses_get_handle() { static int handle; @@ -1620,9 +1648,12 @@ void gaim_statuses_uninit(void) { - if(buddy_presences != NULL) + if (buddy_presences != NULL) + { g_hash_table_destroy(buddy_presences); - buddy_presences = NULL; + + buddy_presences = NULL; + } } void