src/status.c

changeset 12015
894ea8a36478
parent 11975
0abdd0c63f0f
child 12123
a5890e156848
--- a/src/status.c	Wed Nov 09 01:15:47 2005 +0000
+++ b/src/status.c	Wed Nov 09 01:36:28 2005 +0000
@@ -1260,6 +1260,7 @@
 		time_t current_time, gboolean old_idle, gboolean idle)
 {
 	GaimBlistUiOps *ops = gaim_get_blist()->ui_ops;
+	GaimConversation *conv;
 
 	if (!old_idle && idle)
 	{
@@ -1294,8 +1295,23 @@
 
 	gaim_contact_invalidate_priority_buddy(gaim_buddy_get_contact(buddy));
 
+	/* Should this be done here? It'd perhaps make more sense to
+	 * connect to buddy-[un]idle signals and update from there
+	 */
+
 	if (ops != NULL && ops->update != NULL)
 		ops->update(gaim_get_blist(), (GaimBlistNode *)buddy);
+
+	conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM,
+					gaim_buddy_get_name(buddy),
+					gaim_buddy_get_account(buddy));
+	if (conv)
+	{
+		GaimConversationUiOps *conv_ops;
+		conv_ops = gaim_conversation_get_ui_ops(conv);
+		if (conv_ops && conv_ops->updated)
+			conv_ops->updated(conv, GAIM_CONV_UPDATE_AWAY);
+	}
 }
 
 void

mercurial