CVS: sylpheedclaws/sylpheed-claws/src prefs_account.c,1.105.2.74,1.105.2.75

[email protected] Tue, 12 Dec 2006 21:51:45 +0000
Newsgroups gmane.mail.sylpheed.claws.cvs
Message-ID <[email protected]>
Update of /pack/anoncvs/sylpheedclaws/sylpheed-claws/src
In directory sunsite.dk:/tmp/cvs-serv13620/src

Modified Files:
      Tag: gtk2
	prefs_account.c 
Log Message:
2006-12-12 [colin]	2.6.1cvs22

	* src/gtk/menu.h
		Add another menu data type
	* src/prefs_account.c
		Complete the completion of bug 1076
		(doesn't lose the pref on apply)

Index: prefs_account.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/sylpheed-claws/src/prefs_account.c,v
retrieving revision 1.105.2.74
retrieving revision 1.105.2.75
diff -u -d -r1.105.2.74 -r1.105.2.75
--- prefs_account.c	2006/12/12 09:47:24	1.105.2.74
+++ prefs_account.c	2006/12/12 21:51:41	1.105.2.75
@@ -644,6 +644,10 @@
 	
 	privacy_enabled = strcmp(system_id, "");
 
+	if (g_object_get_data(G_OBJECT(menuitem), MENU_VAL_DATA) == NULL ||
+	    GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_DATA)) == FALSE)
+		privacy_enabled = FALSE;
+
 	gtk_widget_set_sensitive (privacy.default_encrypt_chkbtn, privacy_enabled);
 	gtk_widget_set_sensitive (privacy.default_encrypt_reply_chkbtn, privacy_enabled);
 	gtk_widget_set_sensitive (privacy.default_sign_chkbtn, privacy_enabled);
@@ -663,6 +667,7 @@
 	menuitem = gtk_menu_item_new_with_label(_("None"));
 	gtk_widget_show(menuitem);
 	g_object_set_data(G_OBJECT(menuitem), MENU_VAL_ID, "");
+	g_object_set_data(G_OBJECT(menuitem), MENU_VAL_DATA, GINT_TO_POINTER(FALSE));
 	gtk_menu_append(GTK_MENU(menu), menuitem);
 
 	g_signal_connect(G_OBJECT(menuitem), "activate",
@@ -678,6 +683,8 @@
 		menuitem = gtk_menu_item_new_with_label(name);
 		gtk_widget_show(menuitem);
 		g_object_set_data_full(G_OBJECT(menuitem), MENU_VAL_ID, id, g_free);
+		g_object_set_data(G_OBJECT(menuitem), MENU_VAL_DATA, GINT_TO_POINTER(TRUE));
+
 		gtk_menu_append(GTK_MENU(menu), menuitem);
 
 		g_signal_connect(G_OBJECT(menuitem), "activate",
@@ -2862,12 +2869,16 @@
 		name = g_strdup_printf(_("%s (plugin not loaded)"), prefsid);
 		menuitem = gtk_menu_item_new_with_label(name);
 		gtk_widget_show(menuitem);
-		g_object_set_data(G_OBJECT(menuitem), MENU_VAL_ID, "");
+		g_object_set_data(G_OBJECT(menuitem), MENU_VAL_ID, prefsid);
+		g_object_set_data(G_OBJECT(menuitem), MENU_VAL_DATA, GINT_TO_POINTER(FALSE));
 		gtk_menu_append(GTK_MENU(menu), menuitem);
 		g_free(name);
 
 		gtk_option_menu_set_history(GTK_OPTION_MENU(optionmenu), i);
 		privacy_system_activated(GTK_MENU_ITEM(menuitem));
+		g_signal_connect(G_OBJECT(menuitem), "activate",
+				 G_CALLBACK(privacy_system_activated),
+				 NULL);
 	}
 
 	g_list_free(children);