changeset 24084:3ab88169a2c2

Provide a preference to allow users to keep their status message when changing their status. Thus, users who want Twitter/Facebook/"MSN"-style "personal messages" can get the right functionality, while those who want messages related to their current status can get the right functionality. Fixes #7033
author Richard Laager <rlaager@wiktel.com>
date Wed, 10 Sep 2008 19:20:30 +0000
parents fffcfbcc5792
children f869a6e43a12 1c45897c79fc
files pidgin/gtkprefs.c pidgin/gtksavedstatuses.c pidgin/gtkstatusbox.c
diffstat 3 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/pidgin/gtkprefs.c	Wed Sep 10 04:12:59 2008 +0000
+++ b/pidgin/gtkprefs.c	Wed Sep 10 19:20:30 2008 +0000
@@ -1005,6 +1005,12 @@
 	keyboard_shortcuts(ret);
 
 
+	/* Status selector options */
+	vbox = pidgin_make_frame(ret, _("Status Selector"));
+	pidgin_prefs_checkbox(_("Keep the status message when the status is changed"),
+				PIDGIN_PREFS_ROOT "/status/keep_status_message", vbox);
+
+
 	gtk_widget_show_all(ret);
 	g_object_unref(sg);
 	return ret;
--- a/pidgin/gtksavedstatuses.c	Wed Sep 10 04:12:59 2008 +0000
+++ b/pidgin/gtksavedstatuses.c	Wed Sep 10 19:20:30 2008 +0000
@@ -1913,6 +1913,7 @@
 	purple_prefs_add_none(PIDGIN_PREFS_ROOT "/status/dialog");
 	purple_prefs_add_int(PIDGIN_PREFS_ROOT "/status/dialog/width",  550);
 	purple_prefs_add_int(PIDGIN_PREFS_ROOT "/status/dialog/height", 250);
+	purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/status/keep_status_message", FALSE);
 }
 
 void
--- a/pidgin/gtkstatusbox.c	Wed Sep 10 04:12:59 2008 +0000
+++ b/pidgin/gtkstatusbox.c	Wed Sep 10 19:20:30 2008 +0000
@@ -2715,7 +2715,8 @@
 			gtk_widget_show_all(status_box->vbox);
 			status_box->typing = g_timeout_add(TYPING_TIMEOUT, (GSourceFunc)remove_typing_cb, status_box);
 			gtk_widget_grab_focus(status_box->imhtml);
-			gtk_imhtml_clear(GTK_IMHTML(status_box->imhtml));
+			if (!purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/status/keep_status_message"))
+				gtk_imhtml_clear(GTK_IMHTML(status_box->imhtml));
 		}
 		else
 		{