diff src/protocols/oscar/oscar.c @ 10197:7369bf2bf593

[gaim-migrate @ 11314] More status fixes. Oscar kind of works... you can set yourself away, invisible and available, but you can't choose the message for away, can't choose an available message, and invisible only seems to work the first time. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Wed, 17 Nov 2004 01:32:06 +0000
parents 760e690a5f30
children 137a880153ba
line wrap: on
line diff
--- a/src/protocols/oscar/oscar.c	Tue Nov 16 23:29:53 2004 +0000
+++ b/src/protocols/oscar/oscar.c	Wed Nov 17 01:32:06 2004 +0000
@@ -5560,11 +5560,6 @@
 
 	gaim_debug_info("oscar", "Setting status to %s\n", status_id);
 
-	if (primitive == GAIM_STATUS_HIDDEN)
-		aim_setextstatus(od->sess, AIM_ICQ_STATE_INVISIBLE);
-	else
-		aim_setextstatus(od->sess, AIM_ICQ_STATE_NORMAL);
-
 	if (od->rights.maxawaymsglen == 0)
 		gaim_notify_warning(gc, NULL, _("Unable to set AIM away message."),
 							_("You have probably requested to set your "
@@ -5574,6 +5569,8 @@
 							  "fully connected."));
 
 	if (primitive == GAIM_STATUS_AVAILABLE) {
+		aim_setextstatus(od->sess, AIM_ICQ_STATE_NORMAL);
+
 		aim_locate_setprofile(od->sess, NULL, NULL, 0, NULL, "", 0);
 #if 0
 		/* Set an available message */
@@ -5581,6 +5578,8 @@
 #endif
 
 	} else if (primitive == GAIM_STATUS_AWAY) {
+		aim_setextstatus(od->sess, AIM_ICQ_STATE_NORMAL);
+
 		text_html = gaim_status_get_attr_string(status, "message");
 
 		if (text_html == NULL) {
@@ -5616,6 +5615,9 @@
 			g_free(errstr);
 		}
 
+	} else if (primitive == GAIM_STATUS_HIDDEN) {
+		aim_setextstatus(od->sess, AIM_ICQ_STATE_INVISIBLE);
+
 	} else {
 		gaim_debug_info("oscar", "Don't know what to do for this status\n");