changeset 10498:aba3000cc50a

[gaim-migrate @ 11790] Show available messages in oscar tooltips correctly again. And remove an extra "if (!gaim_status_is_active(status)) return" committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 09 Jan 2005 20:06:25 +0000
parents e6b87f7e8988
children d0c336ad0b27
files src/protocols/oscar/oscar.c
diffstat 1 files changed, 8 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/protocols/oscar/oscar.c	Sun Jan 09 20:05:08 2005 +0000
+++ b/src/protocols/oscar/oscar.c	Sun Jan 09 20:06:25 2005 +0000
@@ -699,15 +699,13 @@
 	OscarData *od;
 	GaimAccount *account;
 	GaimPresence *presence;
-	GaimPresence *buddy_presence;
+	GaimStatus *status;
 	GaimGroup *g = NULL;
 	struct buddyinfo *bi = NULL;
 	char *tmp;
 
 	od = gc->proto_data;
 	account = gaim_connection_get_account(gc);
-	presence = gaim_account_get_presence(account);
-	buddy_presence = gaim_buddy_get_presence(b);
 
 	if ((str == NULL) || (newline == NULL) || ((b == NULL) && (userinfo == NULL)))
 		return;
@@ -719,13 +717,17 @@
 		b = gaim_find_buddy(account, userinfo->sn);
 
 	if (b != NULL)
+	{
 		g = gaim_find_buddys_group(b);
+		presence = gaim_buddy_get_presence(b);
+		status = gaim_presence_get_active_status(presence);
+	}
 
 	if (userinfo != NULL)
 		bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(account, userinfo->sn));
 
 	if (b != NULL) {
-		if (gaim_presence_is_online(buddy_presence)) {
+		if (gaim_presence_is_online(presence)) {
 			if (aim_sn_is_icq(b->name)) {
 				tmp = oscar_icqstatus((b->uc & 0xffff0000) >> 16);
 				oscar_string_append(str, newline, _("Status"), tmp);
@@ -766,7 +768,7 @@
 		}
 	}
 
-	if ((bi != NULL) && (bi->availmsg != NULL) && gaim_presence_is_available(presence)) {
+	if ((bi != NULL) && (bi->availmsg != NULL) && gaim_status_is_available(status)) {
 		tmp = g_markup_escape_text(bi->availmsg, strlen(bi->availmsg));
 		oscar_string_append(str, newline, _("Available"), tmp);
 		g_free(tmp);
@@ -5673,9 +5675,6 @@
 	status_id = gaim_status_get_id(status);
 	presence = gaim_account_get_presence(account);
 
-	if (!gaim_status_is_active(status)) /* Is this right?  I'm confused. */
-		return;
-
 	gaim_debug_info("oscar", "Setting status to %s\n", status_id);
 
 	if (gc)
@@ -5797,7 +5796,7 @@
 	GaimStatusType *type = gaim_status_get_type(status);
 	int primitive = gaim_status_type_get_primitive(type);
 
-	if(!gaim_status_is_active(status))
+	if (!gaim_status_is_active(status))
 		return;
 
 	if (primitive == !GAIM_STATUS_OFFLINE && !gc) {