changeset 13686:2d31d61f572c

[gaim-migrate @ 16089] SF Patch #1470203 from Sadrul "If someone (using gaim, not sure about any other) on my buddy-list is away on yahoo, and goes idle, then there's a status-changed signal emitted saying that the buddy changed status to "available" -- which is not correct." "Also, when you have a status-message, and become idle, the status-message for that gets lost. This apparently was caused by my last patch." committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Mon, 24 Apr 2006 20:15:34 +0000
parents 039cc76492b0
children 22ac7f523fc9
files src/protocols/yahoo/yahoo.c
diffstat 1 files changed, 2 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/protocols/yahoo/yahoo.c	Mon Apr 24 20:05:48 2006 +0000
+++ b/src/protocols/yahoo/yahoo.c	Mon Apr 24 20:15:34 2006 +0000
@@ -153,14 +153,12 @@
 		status = YAHOO_STATUS_TYPE_INVISIBLE;
 		break;
 	case YAHOO_STATUS_CUSTOM:
+	case YAHOO_STATUS_IDLE:
 		if (!f->away)
 			status = YAHOO_STATUS_TYPE_AVAILABLE;
 		else
 			status = YAHOO_STATUS_TYPE_AWAY;
 		break;
-	case YAHOO_STATUS_IDLE:
-		status = YAHOO_STATUS_TYPE_AVAILABLE;
-		break;
 	default:
 		gaim_debug_warning("yahoo", "Warning, unknown status %d\n", f->status);
 		break;
@@ -3237,7 +3235,7 @@
 	char *msg = NULL, *msg2 = NULL;
 	GaimStatus *status = NULL;
 
-	if (idle && yd->current_status != YAHOO_STATUS_IDLE)
+	if (idle && yd->current_status != YAHOO_STATUS_CUSTOM)
 		yd->current_status = YAHOO_STATUS_IDLE;
 	else if (!idle && yd->current_status == YAHOO_STATUS_IDLE) {
 		status = gaim_presence_get_active_status(gaim_account_get_presence(gaim_connection_get_account(gc)));