libgaim/savedstatuses.c

changeset 14423
bf504ef2e5e2
parent 14254
77edc7a6191a
child 14725
39980ddc0b9a
--- a/libgaim/savedstatuses.c	Sun Aug 27 22:51:40 2006 +0000
+++ b/libgaim/savedstatuses.c	Sun Aug 27 23:04:55 2006 +0000
@@ -812,7 +812,12 @@
 
 	old = gaim_savedstatus_get_current();
 	gaim_prefs_set_bool("/core/savedstatus/isidleaway", idleaway);
-	saved_status = gaim_savedstatus_get_current();
+	saved_status = idleaway ? gaim_savedstatus_get_idleaway()
+			: gaim_savedstatus_get_default();
+
+	if (idleaway && (gaim_savedstatus_get_type(old) != GAIM_STATUS_AVAILABLE))
+		/* Our global status is already "away," so don't change anything */
+		return;
 
 	accounts = gaim_accounts_get_all_active();
 	for (node = accounts; node != NULL; node = node->next)

mercurial