diff src/blist.c @ 11910:700ec4523c04

[gaim-migrate @ 14201] begone, buddy->present! committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sun, 30 Oct 2005 23:33:36 +0000
parents ec7c3da0e718
children cb73483c9f63
line wrap: on
line diff
--- a/src/blist.c	Sun Oct 30 23:21:22 2005 +0000
+++ b/src/blist.c	Sun Oct 30 23:33:36 2005 +0000
@@ -710,39 +710,6 @@
 		ops->set_visible(gaimbuddylist, show);
 }
 
-static gboolean presence_update_timeout_cb(GaimBuddy *buddy)
-{
-	GaimBlistUiOps *ops = gaimbuddylist->ui_ops;
-	GaimConversation *conv;
-
-	g_return_val_if_fail(buddy != NULL, FALSE);
-
-	if (buddy->present == GAIM_BUDDY_SIGNING_ON) {
-		buddy->present = GAIM_BUDDY_ONLINE;
-	} else if (buddy->present == GAIM_BUDDY_SIGNING_OFF) {
-		buddy->present = GAIM_BUDDY_OFFLINE;
-		((GaimContact*)((GaimBlistNode*)buddy)->parent)->online--;
-		if (((GaimContact*)((GaimBlistNode*)buddy)->parent)->online == 0)
-			((GaimGroup *)((GaimBlistNode *)buddy)->parent->parent)->online--;
-	}
-
-	buddy->timer = 0;
-
-	if (ops && ops->update)
-		ops->update(gaimbuddylist, (GaimBlistNode*)buddy);
-
-	conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, buddy->name,
-											   buddy->account);
-	if (conv) {
-		if (buddy->present == GAIM_BUDDY_ONLINE)
-			gaim_conversation_update(conv, GAIM_CONV_ACCOUNT_ONLINE);
-		else if (buddy->present == GAIM_BUDDY_OFFLINE)
-			gaim_conversation_update(conv, GAIM_CONV_ACCOUNT_OFFLINE);
-	}
-
-	return FALSE;
-}
-
 void
 gaim_blist_update_buddy_status(GaimBuddy *buddy, GaimStatus *old_status)
 {
@@ -761,28 +728,19 @@
 
 	if (gaim_status_is_online(status) &&
 		!gaim_status_is_online(old_status)) {
-		int old_present = buddy->present;
-
-		buddy->present = GAIM_BUDDY_SIGNING_ON;
+
 		gaim_signal_emit(gaim_blist_get_handle(), "buddy-signed-on", buddy);
-		if (old_present != GAIM_BUDDY_SIGNING_OFF) {
-			((GaimContact*)((GaimBlistNode*)buddy)->parent)->online++;
-			if (((GaimContact*)((GaimBlistNode*)buddy)->parent)->online == 1)
-				((GaimGroup *)((GaimBlistNode *)buddy)->parent->parent)->online++;
-		}
-		if (buddy->timer > 0)
-			gaim_timeout_remove(buddy->timer);
-		buddy->timer = gaim_timeout_add(10000, (GSourceFunc)presence_update_timeout_cb, buddy);
-
+
+		((GaimContact*)((GaimBlistNode*)buddy)->parent)->online++;
+		if (((GaimContact*)((GaimBlistNode*)buddy)->parent)->online == 1)
+			((GaimGroup *)((GaimBlistNode *)buddy)->parent->parent)->online++;
 	} else if (!gaim_status_is_online(status) &&
 				gaim_status_is_online(old_status)) {
-		buddy->present = GAIM_BUDDY_SIGNING_OFF;
 		gaim_blist_node_set_int(&buddy->node, "last_seen", time(NULL));
 		gaim_signal_emit(gaim_blist_get_handle(), "buddy-signed-off", buddy);
-		if (buddy->timer > 0)
-			gaim_timeout_remove(buddy->timer);
-		buddy->timer = gaim_timeout_add(10000, (GSourceFunc)presence_update_timeout_cb, buddy);
-
+		((GaimContact*)((GaimBlistNode*)buddy)->parent)->online--;
+		if (((GaimContact*)((GaimBlistNode*)buddy)->parent)->online == 0)
+			((GaimGroup *)((GaimBlistNode *)buddy)->parent->parent)->online--;
 	} else if (gaim_status_is_available(status) &&
 			   !gaim_status_is_available(old_status)) {
 		gaim_signal_emit(gaim_blist_get_handle(), "buddy-back", buddy);
@@ -1781,8 +1739,6 @@
 	gaim_signal_emit(gaim_blist_get_handle(), "buddy-removed", buddy);
 
 	/* Delete the node */
-	if (buddy->timer > 0)
-		gaim_timeout_remove(buddy->timer);
 	if (buddy->icon != NULL)
 		gaim_buddy_icon_unref(buddy->icon);
 	g_hash_table_destroy(buddy->node.settings);