rpms/evolution/devel evolution-2.9.3-gtk-color-button.patch, NONE, 1.1 .cvsignore, 1.62, 1.63 evolution.spec, 1.218, 1.219 sources, 1.62, 1.63 evolution-2.9.2-gtk-color-button.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Dec 19 22:24:57 UTC 2006


Author: mbarnes

Update of /cvs/dist/rpms/evolution/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv17202

Modified Files:
	.cvsignore evolution.spec sources 
Added Files:
	evolution-2.9.3-gtk-color-button.patch 
Removed Files:
	evolution-2.9.2-gtk-color-button.patch 
Log Message:

* Tue Dec 19 2006 Matthew Barnes <mbarnes at redhat.com> - 2.9.4-1.fc7
- Update to 2.9.4
- Bump eds_version to 1.9.4 due to soname changes.
- Remove patch for GNOME bug #382431 (fixed upstream).


evolution-2.9.3-gtk-color-button.patch:
 calendar/gui/calendar-component.c                   |    2 
 calendar/gui/calendar-config.c                      |   84 ++++++++---
 calendar/gui/calendar-config.h                      |    9 -
 calendar/gui/dialogs/cal-prefs-dialog.c             |   56 ++-----
 calendar/gui/dialogs/cal-prefs-dialog.glade         |    6 
 calendar/gui/dialogs/calendar-setup.c               |  144 +++++++++-----------
 calendar/gui/e-cal-model-tasks.c                    |   18 ++
 calendar/gui/e-cal-model.c                          |    7 
 calendar/gui/memos-component.c                      |    2 
 calendar/gui/migration.c                            |   10 -
 calendar/gui/tasks-component.c                      |    2 
 filter/filter-colour.c                              |  108 ++++++---------
 filter/filter-colour.h                              |    2 
 filter/filter-element.c                             |    8 -
 mail/em-composer-prefs.c                            |   41 +++--
 mail/em-composer-prefs.h                            |    3 
 mail/em-mailer-prefs.c                              |   71 +++------
 mail/em-mailer-prefs.h                              |    5 
 mail/mail-config.glade                              |   23 +--
 plugins/groupwise-account-setup/camel-gw-listener.c |    4 
 20 files changed, 303 insertions(+), 302 deletions(-)

--- NEW FILE evolution-2.9.3-gtk-color-button.patch ---
--- evolution-2.9.4/mail/em-composer-prefs.c.gtk-color-button	2006-07-11 12:47:09.000000000 -0400
+++ evolution-2.9.4/mail/em-composer-prefs.c	2006-12-19 16:07:37.000000000 -0500
@@ -56,9 +56,8 @@
 #include <gtk/gtkcellrenderertext.h>
 #include <gtk/gtkimage.h>
 #include <gtk/gtkstock.h>
-
+#include <gtk/gtkcolorbutton.h>
 #include <gtk/gtkfilechooserbutton.h>
-#include <libgnomeui/gnome-color-picker.h>
 
 #include <gtkhtml/gtkhtml.h>
 
@@ -545,7 +544,7 @@
 	GtkTreeIter iter;
 	GError *err = NULL;
 	char **strv = NULL;
-	guint r, g, b;
+	GdkColor color;
 	gboolean go;
 	char *lang;
 	int i;
@@ -580,21 +579,33 @@
 	if (strv != NULL)
 		g_strfreev (strv);
 	
-	r = gconf_client_get_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_red", NULL);
-	g = gconf_client_get_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_green", NULL);
-	b = gconf_client_get_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_blue", NULL);
-	
-	gnome_color_picker_set_i16 (GNOME_COLOR_PICKER (prefs->colour), r, g, b, 0xffff);
+	color.red = gconf_client_get_int (prefs->gconf,
+		GNOME_SPELL_GCONF_DIR "/spell_error_color_red", NULL);
+	color.green = gconf_client_get_int (prefs->gconf,
+		GNOME_SPELL_GCONF_DIR "/spell_error_color_green", NULL);
+	color.blue = gconf_client_get_int (prefs->gconf,
+		GNOME_SPELL_GCONF_DIR "/spell_error_color_blue", NULL);
+	gtk_color_button_set_color (GTK_COLOR_BUTTON (prefs->color), &color);
 	
 	prefs->spell_active = TRUE;
 }
 
 static void
-spell_color_set (GtkWidget *widget, guint r, guint g, guint b, guint a, EMComposerPrefs *prefs)
+spell_color_set (GtkColorButton *color_button, EMComposerPrefs *prefs)
 {
-	gconf_client_set_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_red", r, NULL);
-	gconf_client_set_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_green", g, NULL);
-	gconf_client_set_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_blue", b, NULL);
+	GdkColor color;
+
+	gtk_color_button_get_color (GTK_COLOR_BUTTON (color_button), &color);
+
+	gconf_client_set_int (prefs->gconf,
+		GNOME_SPELL_GCONF_DIR "/spell_error_color_red",
+		color.red, NULL);
+	gconf_client_set_int (prefs->gconf,
+		GNOME_SPELL_GCONF_DIR "/spell_error_color_green",
+		color.green, NULL);
+	gconf_client_set_int (prefs->gconf,
+		GNOME_SPELL_GCONF_DIR "/spell_error_color_blue",
+		color.blue, NULL);
 }
 
 static char *
@@ -676,7 +687,7 @@
 	
 	spell_set_ui (prefs);
 	
-	widget = glade_xml_get_widget (prefs->gui, "colorpickerSpellCheckColor");
+	widget = glade_xml_get_widget (prefs->gui, "colorButtonSpellCheckColor");
 	g_signal_connect (widget, "color_set", G_CALLBACK (spell_color_set), prefs);
 }
 
@@ -922,7 +933,7 @@
 	g_free (buf);
 	
 	/* Spell Checking: GNOME Spell part */
-	prefs->colour = GNOME_COLOR_PICKER (glade_xml_get_widget (gui, "colorpickerSpellCheckColor"));
+	prefs->color = GTK_COLOR_BUTTON (glade_xml_get_widget (gui, "colorButtonSpellCheckColor"));
 	prefs->language = GTK_TREE_VIEW (glade_xml_get_widget (gui, "listSpellCheckLanguage"));
 	model = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER);
 	gtk_tree_view_set_model (prefs->language, (GtkTreeModel *) model);
@@ -942,7 +953,7 @@
 	info_pixmap = glade_xml_get_widget (gui, "pixmapSpellInfo");
 	gtk_image_set_from_stock (GTK_IMAGE (info_pixmap), GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_BUTTON);
 	if (!spell_setup_check_options (prefs)) {
-		gtk_widget_hide (GTK_WIDGET (prefs->colour));
+		gtk_widget_hide (GTK_WIDGET (prefs->color));
 		gtk_widget_hide (GTK_WIDGET (prefs->language));
 	}
 	
--- evolution-2.9.4/mail/mail-config.glade.gtk-color-button	2006-12-19 16:06:48.000000000 -0500
+++ evolution-2.9.4/mail/mail-config.glade	2006-12-19 16:07:37.000000000 -0500
@@ -5138,10 +5138,9 @@
 			      </child>
 
 			      <child>
-				<widget class="GnomeColorPicker" id="colorpickerHighlightCitations">
+				<widget class="GtkColorButton" id="colorButtonHighlightCitations">
 				  <property name="visible">True</property>
 				  <property name="can_focus">True</property>
-				  <property name="dither">True</property>
 				  <property name="use_alpha">False</property>
 				  <property name="title" translatable="yes">Pick a color</property>
 				  <property name="focus_on_click">True</property>
@@ -6079,10 +6078,9 @@
 		  <property name="column_spacing">6</property>
 
 		  <child>
-		    <widget class="GnomeColorPicker" id="colorLabel0">
+		    <widget class="GtkColorButton" id="colorLabel0">
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
-		      <property name="dither">True</property>
 		      <property name="use_alpha">False</property>
 		      <property name="title" translatable="yes">Pick a color</property>
 		      <property name="focus_on_click">True</property>
@@ -6098,10 +6096,9 @@
 		  </child>
 
 		  <child>
-		    <widget class="GnomeColorPicker" id="colorLabel1">
+		    <widget class="GtkColorButton" id="colorLabel1">
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
-		      <property name="dither">True</property>
 		      <property name="use_alpha">False</property>
 		      <property name="title" translatable="yes">Pick a color</property>
 		      <property name="focus_on_click">True</property>
@@ -6117,10 +6114,9 @@
 		  </child>
 
 		  <child>
-		    <widget class="GnomeColorPicker" id="colorLabel2">
+		    <widget class="GtkColorButton" id="colorLabel2">
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
-		      <property name="dither">True</property>
 		      <property name="use_alpha">False</property>
 		      <property name="title" translatable="yes">Pick a color</property>
 		      <property name="focus_on_click">True</property>
@@ -6136,10 +6132,9 @@
 		  </child>
 
 		  <child>
-		    <widget class="GnomeColorPicker" id="colorLabel3">
+		    <widget class="GtkColorButton" id="colorLabel3">
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
-		      <property name="dither">True</property>
 		      <property name="use_alpha">False</property>
 		      <property name="title" translatable="yes">Pick a color</property>
 		      <property name="focus_on_click">True</property>
@@ -6155,10 +6150,9 @@
 		  </child>
 
 		  <child>
-		    <widget class="GnomeColorPicker" id="colorLabel4">
+		    <widget class="GtkColorButton" id="colorLabel4">
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
-		      <property name="dither">True</property>
 		      <property name="use_alpha">False</property>
 		      <property name="title" translatable="yes">Pick a color</property>
 		      <property name="focus_on_click">True</property>
@@ -8315,7 +8309,7 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
-			      <property name="mnemonic_widget">colorpickerSpellCheckColor</property>
+			      <property name="mnemonic_widget">colorButtonSpellCheckColor</property>
 			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
 			      <property name="width_chars">-1</property>
 			      <property name="single_line_mode">False</property>
@@ -8329,10 +8323,9 @@
 			  </child>
 
 			  <child>
-			    <widget class="GnomeColorPicker" id="colorpickerSpellCheckColor">
+			    <widget class="GtkColorButton" id="colorButtonSpellCheckColor">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="dither">True</property>
 			      <property name="use_alpha">False</property>
 			      <property name="title" translatable="yes">Pick a color</property>
 			      <property name="focus_on_click">True</property>
--- evolution-2.9.4/mail/em-mailer-prefs.h.gtk-color-button	2006-12-19 16:06:48.000000000 -0500
+++ evolution-2.9.4/mail/em-mailer-prefs.h	2006-12-19 16:07:37.000000000 -0500
@@ -37,7 +37,6 @@
 struct _GdkPixbuf;
 struct _GtkWidget;
 struct _GladeXML;
-struct _GnomeColorPicker;
 struct _GtkFileChooserbutton;
 struct _GtkFontButton;
 struct _GConfClient;
@@ -80,7 +79,7 @@
 	struct _GtkSpinButton *mlimit_count;
 	struct _GtkOptionMenu *charset;
 	struct _GtkToggleButton *citation_highlight;
-	struct _GnomeColorPicker *citation_color;
+	struct _GtkColorButton *citation_color;
 	
 	/* Deleting Mail */
 	struct _GtkToggleButton *empty_trash;
@@ -110,7 +109,7 @@
 	/* Labels and Colours tab */
 	struct {
 		struct _GtkEntry *name;
-		struct _GnomeColorPicker *color;
+		struct _GtkColorButton *color;
 	} labels[5];
 	struct _GtkButton *restore_labels;
 
--- evolution-2.9.4/mail/em-composer-prefs.h.gtk-color-button	2005-01-24 16:11:07.000000000 -0500
+++ evolution-2.9.4/mail/em-composer-prefs.h	2006-12-19 16:07:37.000000000 -0500
@@ -48,7 +48,6 @@
 struct _GdkPixbuf;
 struct _GtkWidget;
 struct _GladeXML;
-struct _GnomeColorPicker;
 struct _GConfClient;
 struct _GtkButton;
 struct _GtkTreeView;
@@ -71,7 +70,7 @@
 	struct _GtkOptionMenu *charset;
 	
 	struct _GtkToggleButton *spell_check;
-	struct _GnomeColorPicker *colour;
+	struct _GtkColorButton *color;
 	struct _GtkTreeView *language;
 	CORBA_sequence_GNOME_Spell_Language *language_seq;
 	gboolean spell_active;
--- evolution-2.9.4/mail/em-mailer-prefs.c.gtk-color-button	2006-12-19 16:06:48.000000000 -0500
+++ evolution-2.9.4/mail/em-mailer-prefs.c	2006-12-19 16:08:24.000000000 -0500
@@ -35,7 +35,7 @@
 #include "misc/e-charset-picker.h"
 #include <bonobo/bonobo-generic-factory.h>
 
-#include <libgnomeui/gnome-color-picker.h>
+#include <gtk/gtkcolorbutton.h>
 #include <gtk/gtkfilechooserbutton.h>
 #include <gtk/gtkfontbutton.h>
 
@@ -157,49 +157,27 @@
 
 
 static void
-colorpicker_set_color (GnomeColorPicker *color, const char *str)
+color_button_set_color (GtkColorButton *color_button, const gchar *spec)
 {
-	GdkColor colour;
-	guint32 rgb;
-	
-	gdk_color_parse (str, &colour);
-	rgb = ((colour.red & 0xff00) << 8) | (colour.green & 0xff00) | ((colour.blue & 0xff00) >> 8);
-	
-	gnome_color_picker_set_i8 (color, (rgb & 0xff0000) >> 16, (rgb & 0xff00) >> 8, rgb & 0xff, 0xff);
-}
+	GdkColor color;
 
-static guint32
-colorpicker_get_color (GnomeColorPicker *color)
-{
-	guint8 r, g, b, a;
-	guint32 rgb = 0;
-	
-	gnome_color_picker_get_i8 (color, &r, &g, &b, &a);
-	
-	rgb   = r;
-	rgb <<= 8;
-	rgb  |= g;
-	rgb <<= 8;
-	rgb  |= b;
-	
-	return rgb;
+	if (gdk_color_parse (spec, &color))
+		gtk_color_button_set_color (color_button, &color);
 }
 
 static void
-citation_color_set (GtkWidget *widget, guint r, guint g, guint b, guint a, EMMailerPrefs *prefs)
+citation_color_set (GtkColorButton *color_button, EMMailerPrefs *prefs)
 {
-	guint32 rgb = 0;
-	char buf[20];
-	
-	rgb   = r & 0xff;
-	rgb <<= 8;
-	rgb  |= g & 0xff;
-	rgb <<= 8;
-	rgb  |= b & 0xff;
-	
-	sprintf (buf, "#%06x", rgb & 0xffffff);
-	
-	gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/citation_colour", buf, NULL);
+	GdkColor color;
+	gchar spec[16];
+
+	gtk_color_button_get_color (color_button, &color);
+	g_snprintf (spec, sizeof (spec), "#%04x%04x%04x",
+		color.red, color.green, color.blue);
+
+	gconf_client_set_string (prefs->gconf,
+		"/apps/evolution/mail/display/citation_colour",
+		spec, NULL);
 }
 
 static void
@@ -212,9 +190,12 @@
 	int i;
 	
 	for (i = 4; i >= 0; i--) {
+		GdkColor color;
+
 		cstring = gtk_entry_get_text (prefs->labels[i].name);
-		rgb = colorpicker_get_color (prefs->labels[i].color);
-		string = g_strdup_printf ("%s:#%06x", cstring, rgb & 0xffffff);
+		gtk_color_button_get_color (prefs->labels[i].color, &color);
+		string = g_strdup_printf ("%s:#%04x%04x%04x", cstring,
+			color.red, color.green, color.blue);
 		list = g_slist_prepend (list, string);
 	}
 	
@@ -249,7 +230,7 @@
 	
 	for (i = 0; i < 5; i++) {
 		gtk_entry_set_text (prefs->labels[i].name, _(label_defaults[i].name));
-		colorpicker_set_color (prefs->labels[i].color, label_defaults[i].colour);
+		color_button_set_color (prefs->labels[i].color, label_defaults[i].colour);
 		atk_object_set_name(gtk_widget_get_accessible((GtkWidget *)prefs->labels[i].color), _(label_defaults[i].name));
 	}
 }
@@ -812,9 +793,9 @@
 			    "/apps/evolution/mail/display/mark_citations",
 			    G_CALLBACK (toggle_button_toggled));
 	
-	prefs->citation_color = GNOME_COLOR_PICKER (glade_xml_get_widget (gui, "colorpickerHighlightCitations"));
+	prefs->citation_color = GTK_COLOR_BUTTON (glade_xml_get_widget (gui, "colorButtonHighlightCitations"));
 	buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/citation_colour", NULL);
-	colorpicker_set_color (prefs->citation_color, buf ? buf : "#737373");
+	color_button_set_color (prefs->citation_color, buf ? buf : "#737373");
 	g_signal_connect (prefs->citation_color, "color-set", G_CALLBACK (citation_color_set), prefs);
 	if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/citation_colour", NULL))
 		gtk_widget_set_sensitive ((GtkWidget *) prefs->citation_color, FALSE);
@@ -935,14 +916,14 @@
 		g_free (widget_name);
 		
 		widget_name = g_strdup_printf ("colorLabel%d", i);
-		prefs->labels[i].color = GNOME_COLOR_PICKER (glade_xml_get_widget (gui, widget_name));
+		prefs->labels[i].color = GTK_COLOR_BUTTON (glade_xml_get_widget (gui, widget_name));
 		gtk_widget_set_sensitive ((GtkWidget *) prefs->labels[i].color, !locked);
 		g_free (widget_name);
 		
 		gtk_entry_set_text (prefs->labels[i].name, label->name);
 		g_signal_connect (prefs->labels[i].name, "changed", G_CALLBACK (label_entry_changed), prefs);
 		
-		colorpicker_set_color (prefs->labels[i].color, label->colour);
+		color_button_set_color (prefs->labels[i].color, label->colour);
 		g_signal_connect (prefs->labels[i].color, "color-set", G_CALLBACK (label_color_set), prefs);
 		
 		atk_object_set_name(gtk_widget_get_accessible((GtkWidget *)prefs->labels[i].color), label->name);
--- evolution-2.9.4/filter/filter-colour.h.gtk-color-button	2002-11-01 17:07:46.000000000 -0500
+++ evolution-2.9.4/filter/filter-colour.h	2006-12-19 16:07:37.000000000 -0500
@@ -39,7 +39,7 @@
 struct _FilterColour {
 	FilterElement parent_object;
 	
-	guint16 r, g, b, a;
+	GdkColor color;
 };
 
 struct _FilterColourClass {
--- evolution-2.9.4/filter/filter-colour.c.gtk-color-button	2004-12-02 22:41:39.000000000 -0500
+++ evolution-2.9.4/filter/filter-colour.c	2006-12-19 16:07:37.000000000 -0500
@@ -26,7 +26,7 @@
 #endif
 
 #include <gtk/gtksignal.h>
-#include <libgnomeui/gnome-color-picker.h>
+#include <gtk/gtkcolorbutton.h>
 
 #include "libedataserver/e-sexp.h"
 #include "filter-colour.h"
@@ -120,13 +120,11 @@
 static int
 colour_eq (FilterElement *fe, FilterElement *cm)
 {
-	FilterColour *fc = (FilterColour *)fe, *cc = (FilterColour *)cm;
-	
-        return FILTER_ELEMENT_CLASS (parent_class)->eq (fe, cm)
-		&& fc->r == cc->r
-		&& fc->g == cc->g
-		&& fc->b == cc->b
-		&& fc->a == cc->a;
+	FilterColour *fc = (FilterColour *) fe;
+	FilterColour *cc = (FilterColour *) cm;
+
+	return FILTER_ELEMENT_CLASS (parent_class)->eq (fe, cm)
+		&& gdk_color_equal (&fc->color, &cc->color);
 }
 
 static void
@@ -139,76 +137,70 @@
 static xmlNodePtr
 xml_encode (FilterElement *fe)
 {
-	xmlNodePtr value;
 	FilterColour *fc = (FilterColour *)fe;
-	char hex[16];
-	
-	d(printf("Encoding colour as xml\n"));
+	xmlNodePtr value;
+	gchar spec[16];
+
+	g_snprintf (spec, sizeof (spec), "#%04x%04x%04x",
+		fc->color.red, fc->color.green, fc->color.blue);
+
 	value = xmlNewNode(NULL, "value");
 	xmlSetProp(value, "name", fe->name);
 	xmlSetProp(value, "type", "colour");
-	
-	sprintf(hex, "%04x", fc->r);
-	xmlSetProp(value, "red", hex);
-	sprintf(hex, "%04x", fc->g);
-	xmlSetProp(value, "green", hex);
-	sprintf(hex, "%04x", fc->b);
-	xmlSetProp(value, "blue", hex);
-	sprintf(hex, "%04x", fc->a);
-	xmlSetProp(value, "alpha", hex);
-	
-	return value;
-}
+	xmlSetProp(value, "spec", spec);
 
-static guint16
-get_value (xmlNodePtr node, char *name)
-{
-	unsigned int ret;
-	char *value;
-	
-	value = xmlGetProp(node, name);
-	sscanf(value, "%04x", &ret);
-	xmlFree(value);
-	return ret;
+	return value;
 }
 
-
 static int
 xml_decode (FilterElement *fe, xmlNodePtr node)
 {
 	FilterColour *fc = (FilterColour *)fe;
-	
+	xmlChar *prop;
+
 	xmlFree (fe->name);
 	fe->name = xmlGetProp(node, "name");
-	fc->r = get_value(node, "red");
-	fc->g = get_value(node, "green");
-	fc->b = get_value(node, "blue");
-	fc->a = get_value(node, "alpha");
-	
+
+	prop = xmlGetProp(node, "spec");
+	if (prop != NULL) {
+		gdk_color_parse(prop, &fc->color);
+		xmlFree (prop);
+	} else {
+		/* try reading the old RGB properties */
+		prop = xmlGetProp(node, "red");
+		sscanf(prop, "%" G_GINT16_MODIFIER "x", &fc->color.red);
+		xmlFree (prop);
+		prop = xmlGetProp(node, "green");
+		sscanf(prop, "%" G_GINT16_MODIFIER "x", &fc->color.green);
+		xmlFree (prop);
+		prop = xmlGetProp(node, "blue");
+		sscanf(prop, "%" G_GINT16_MODIFIER "x", &fc->color.blue);
+		xmlFree (prop);
+	}
+
 	return 0;
 }
 
 static void
-set_colour (GnomeColorPicker *cp, guint r, guint g, guint b, guint a, FilterColour *fc)
+set_color (GtkColorButton *color_button, FilterColour *fc)
 {
-	fc->r = r;
-	fc->g = g;
-	fc->b = b;
-	fc->a = a;
+	gtk_color_button_get_color (color_button, &fc->color);
 }
 
 static GtkWidget *
 get_widget (FilterElement *fe)
 {
 	FilterColour *fc = (FilterColour *) fe;
-	GnomeColorPicker *cp;
-	
-	cp = (GnomeColorPicker *) gnome_color_picker_new ();
-	gnome_color_picker_set_i16 (cp, fc->r, fc->g, fc->b, fc->a);
-	gtk_widget_show ((GtkWidget *) cp);
-	g_signal_connect (cp, "color_set", G_CALLBACK (set_colour), fe);
+	GtkWidget *color_button;
+
+	color_button = gtk_color_button_new_with_color (&fc->color);
+	gtk_widget_show (color_button);
+
+	g_signal_connect (
+		G_OBJECT (color_button), "color_set",
+		G_CALLBACK (set_color), fe);
 	
-	return (GtkWidget *) cp;
+	return color_button;
 }
 
 static void
@@ -221,9 +213,9 @@
 format_sexp (FilterElement *fe, GString *out)
 {
 	FilterColour *fc = (FilterColour *)fe;
-	char *str;
-	
-	str = g_strdup_printf ("#%02x%02x%02x", (fc->r >> 8) & 0xff, (fc->g >> 8) & 0xff, (fc->b >> 8) & 0xff);
-	e_sexp_encode_string (out, str);
-	g_free (str);
+	gchar spec[16];
+
+	g_snprintf (spec, sizeof (spec), "#%04x%04x%04x",
+		fc->color.red, fc->color.green, fc->color.blue);
+	e_sexp_encode_string (out, spec);
 }
--- evolution-2.9.4/filter/filter-element.c.gtk-color-button	2006-02-08 06:44:27.000000000 -0500
+++ evolution-2.9.4/filter/filter-element.c	2006-12-19 16:07:37.000000000 -0500
@@ -293,12 +293,10 @@
 		}
 	} else if (IS_FILTER_COLOUR(se)) {
 		if (IS_FILTER_COLOUR(de)) {
-			FilterColour *s = (FilterColour *)se, *d = (FilterColour *)de;
+			FilterColour *s = (FilterColour *)se;
+			FilterColour *d = (FilterColour *)de;
 
-			d->r = s->r;
-			d->g = s->g;
-			d->b = s->b;
-			d->a = s->a;
+			d->color = s->color;
 		}
 	} else if (IS_FILTER_DATESPEC(se)) {
 		if (IS_FILTER_DATESPEC(de)) {
--- evolution-2.9.4/plugins/groupwise-account-setup/camel-gw-listener.c.gtk-color-button	2006-12-04 08:14:34.000000000 -0500
+++ evolution-2.9.4/plugins/groupwise-account-setup/camel-gw-listener.c	2006-12-19 16:07:37.000000000 -0500
@@ -213,10 +213,10 @@
 	e_source_set_property (source, "offline_sync", offline_sync ? "1" : "0" );
 	if (parent_id_name) {
 		e_source_set_property (source, "parent_id_name", parent_id_name);
-		e_source_set_color (source, 0xFF00FF);
+		e_source_set_color_spec (source, "#FF00FF");
 	}
 	else
-		e_source_set_color (source, 0xEEBC60);
+		e_source_set_color_spec (source, "#EEBC60");
 	e_source_group_add_source (group, source, -1);
 	e_source_list_sync (source_list, NULL);
 
--- evolution-2.9.4/calendar/gui/tasks-component.c.gtk-color-button	2006-12-04 08:14:30.000000000 -0500
+++ evolution-2.9.4/calendar/gui/tasks-component.c	2006-12-19 16:07:37.000000000 -0500
@@ -209,7 +209,7 @@
 			calendar_config_set_tasks_selected (&selected);
 		}
 
-		e_source_set_color (source, 0xBECEDD);
+		e_source_set_color_spec (source, "#BECEDD");
 		personal_source = source;
 	}
 
--- evolution-2.9.4/calendar/gui/dialogs/cal-prefs-dialog.c.gtk-color-button	2006-12-19 16:06:48.000000000 -0500
+++ evolution-2.9.4/calendar/gui/dialogs/cal-prefs-dialog.c	2006-12-19 16:07:37.000000000 -0500
@@ -96,21 +96,6 @@
 	return glade_xml_get_widget (prefs->gui, item->label);
 }
 
-/* Returns a pointer to a static string with an X color spec for the current
- * value of a color picker.
- */
-static const char *
-spec_from_picker (GtkWidget *picker)
-{
-	static char spec[8];
-	guint8 r, g, b;
-
-	gnome_color_picker_get_i8 (GNOME_COLOR_PICKER (picker), &r, &g, &b, NULL);
-	g_snprintf (spec, sizeof (spec), "#%02x%02x%02x", r, g, b);
-
-	return spec;
-}
-
 static void
 working_days_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
 {
@@ -277,15 +262,21 @@
 }
 
 static void
-tasks_due_today_set_color (GnomeColorPicker *picker, guint r, guint g, guint b, guint a, CalendarPrefsDialog *prefs)
+tasks_due_today_set_color (GtkColorButton *color_button, CalendarPrefsDialog *prefs)
 {
-	calendar_config_set_tasks_due_today_color (spec_from_picker (prefs->tasks_due_today_color));
+	GdkColor color;
+
+	gtk_color_button_get_color (color_button, &color);
+	calendar_config_set_tasks_due_today_color (&color);
 }
 
 static void
-tasks_overdue_set_color (GnomeColorPicker *picker, guint r, guint g, guint b, guint a, CalendarPrefsDialog *prefs)
+tasks_overdue_set_color (GtkColorButton *color_button, CalendarPrefsDialog *prefs)
 {
-	calendar_config_set_tasks_overdue_color (spec_from_picker (prefs->tasks_overdue_color));
+	GdkColor color;
+
+	gtk_color_button_get_color (color_button, &color);
+	calendar_config_set_tasks_overdue_color (&color);
 }
 
 static void
@@ -417,22 +408,6 @@
 	g_signal_connect (G_OBJECT (prefs->template_url), "changed", G_CALLBACK (template_url_changed), prefs);
 }
 
-/* Sets the color in a color picker from an X color spec */
-static void
-set_color_picker (GtkWidget *picker, const char *spec)
-{
-	GdkColor color;
-
-	if (!spec || !gdk_color_parse (spec, &color))
-		color.red = color.green = color.blue = 0;
-
-	gnome_color_picker_set_i16 (GNOME_COLOR_PICKER (picker),
-				    color.red,
-				    color.green,
-				    color.blue,
-				    65535);
-}
-
 /* Shows the current Free/Busy settings in the dialog */
 static void
 show_fb_config (CalendarPrefsDialog *prefs)
@@ -449,11 +424,18 @@
 static void
 show_task_list_config (CalendarPrefsDialog *prefs)
 {
+	GtkColorButton *color_button;
+	GdkColor color;
 	CalUnits units;
 	gboolean hide_completed_tasks = FALSE;
 
-	set_color_picker (prefs->tasks_due_today_color, calendar_config_get_tasks_due_today_color ());
-	set_color_picker (prefs->tasks_overdue_color, calendar_config_get_tasks_overdue_color ());
+	color_button = GTK_COLOR_BUTTON (prefs->tasks_due_today_color);
+	calendar_config_get_tasks_due_today_color (&color);
+	gtk_color_button_set_color (color_button, &color);
+
+	color_button = GTK_COLOR_BUTTON (prefs->tasks_overdue_color);
+	calendar_config_get_tasks_overdue_color (&color);
+	gtk_color_button_set_color (color_button, &color);
 
 	/* Hide Completed Tasks. */
 	e_dialog_toggle_set (prefs->tasks_hide_completed, calendar_config_get_hide_completed_tasks ());
--- evolution-2.9.4/calendar/gui/dialogs/calendar-setup.c.gtk-color-button	2006-07-19 09:04:45.000000000 -0400
+++ evolution-2.9.4/calendar/gui/dialogs/calendar-setup.c	2006-12-19 16:07:37.000000000 -0500
@@ -73,44 +73,22 @@
 }
 
 static void
-colorpicker_set_color (GnomeColorPicker *color, guint32 rgb)
-{
-	gnome_color_picker_set_i8 (color, (rgb & 0xff0000) >> 16, (rgb & 0xff00) >> 8, rgb & 0xff, 0xff);
-}
-
-static guint32
-colorpicker_get_color (GnomeColorPicker *color)
-{
-	guint8 r, g, b, a;
-	guint32 rgb = 0;
-
-	gnome_color_picker_get_i8 (color, &r, &g, &b, &a);
-
-	rgb = r;
-	rgb <<= 8;
-	rgb |= g;
-	rgb <<= 8;
-	rgb |= b;
-
-	return rgb;
-}
-
-static void
 eccp_commit (EConfig *ec, GSList *items, void *data)
 {
 	CalendarSourceDialog *sdialog = data;
 	xmlNodePtr xml;
 
 	if (sdialog->original_source) {
-		guint32 color;
+		const gchar *color_spec;
 
 		xml = xmlNewNode (NULL, "dummy");
 		e_source_dump_to_xml_node (sdialog->source, xml);
 		e_source_update_from_xml_node (sdialog->original_source, xml->children, NULL);
 		xmlFreeNode (xml);
 
-		if (e_source_get_color (sdialog->source, &color))
-			e_source_set_color (sdialog->original_source, color);
+		color_spec = e_source_peek_color_spec (sdialog->source);
+		if (color_spec != NULL)
+			e_source_set_color_spec (sdialog->original_source, color_spec);
 	} else {
 		e_source_group_add_source (sdialog->source_group, sdialog->source, -1);
 		e_source_list_sync (sdialog->source_list, NULL);
@@ -304,63 +282,80 @@
 }
 
 static void
-color_changed (GnomeColorPicker *picker, guint r, guint g, guint b, guint a, ECalConfigTargetSource *t)
+color_changed (GtkColorButton *color_button, ECalConfigTargetSource *target)
 {
-	ESource *source = t->source;
-	e_source_set_color (source, colorpicker_get_color (picker));
+	ESource *source = target->source;
+	gchar color_spec[16];
+	GdkColor color;
+
+	gtk_color_button_get_color (color_button, &color);
+	g_snprintf (color_spec, sizeof (color_spec), "#%04x%04x%04x",
+		color.red, color.green, color.blue);
+	e_source_set_color_spec (source, color_spec);
+}
+
+static const gchar *
+choose_initial_color (void)
+{
+	static const gchar *colors[] = {
+		"#BECEDD", /* 190 206 221     Blue */
+		"#E2F0EF", /* 226 240 239     Light Blue */
+		"#C6E2B7", /* 198 226 183     Green */
+		"#E2F0D3", /* 226 240 211     Light Green */
+		"#E2D4B7", /* 226 212 183     Khaki */
+		"#EAEAC1", /* 234 234 193     Light Khaki */
+		"#F0B8B7", /* 240 184 183     Pink */
+		"#FED4D3", /* 254 212 211     Light Pink */
+		"#E2C6E1", /* 226 198 225     Purple */
+		"#F0E2EF"  /* 240 226 239     Light Purple */
+	};
+
+	return colors[g_random_int_range (0, G_N_ELEMENTS (colors))];
 }
 
 static GtkWidget *
 eccp_get_source_color (EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, struct _GtkWidget *old, void *data)
 {
 	CalendarSourceDialog *sdialog = data;
-	static GtkWidget *label, *picker;
-	int row;
-	ECalConfigTargetSource *t = (ECalConfigTargetSource *) ec->target;
-	static guint32 assigned_colors[] = {
-		0xBECEDD, /* 190 206 221     Blue */
-		0xE2F0EF, /* 226 240 239     Light Blue */
-		0xC6E2B7, /* 198 226 183     Green */
-		0xE2F0D3, /* 226 240 211     Light Green */
-		0xE2D4B7, /* 226 212 183     Khaki */
-		0xEAEAC1, /* 234 234 193     Light Khaki */
-		0xF0B8B7, /* 240 184 183     Pink */
-		0xFED4D3, /* 254 212 211     Light Pink */
-		0xE2C6E1, /* 226 198 225     Purple */
-		0xF0E2EF  /* 240 226 239     Light Purple */
-	};
-	GRand *rand = g_rand_new ();
-	guint32 color;
+	static GtkWidget *label, *color_button;
+	guint row = GTK_TABLE (parent)->nrows;
+	const gchar *color_spec = NULL;
+	GdkColor color;
 
 	if (old)
 		gtk_widget_destroy (label);
 
-	row = ((GtkTable*)parent)->nrows;
+	if (sdialog->original_source)
+		color_spec = e_source_peek_color_spec (sdialog->original_source);
+
+	if (color_spec == NULL) {
+		color_spec = choose_initial_color ();
+		e_source_set_color_spec (sdialog->source, color_spec);
+	}
 
-	color = assigned_colors[g_rand_int_range (rand, 0, 9)];
-	g_rand_free (rand);
+	if (!gdk_color_parse (color_spec, &color))
+		g_warning ("Unknown color \"%s\" in calendar \"%s\"",
+			color_spec, e_source_peek_name (sdialog->source));
 
 	label = gtk_label_new_with_mnemonic (_("C_olor:"));
 	gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+	gtk_table_attach (
+		GTK_TABLE (parent), label,
+		0, 1, row, row + 1, GTK_FILL, 0, 0, 0);
 	gtk_widget_show (label);
-	gtk_table_attach (GTK_TABLE (parent), label, 0, 1, row, row+1, GTK_FILL, 0, 0, 0);
-
-	picker = gnome_color_picker_new ();
-	gtk_widget_show (picker);
-	gtk_label_set_mnemonic_widget (GTK_LABEL (label), picker);
-	gtk_table_attach (GTK_TABLE (parent), picker, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, 0, 0, 0);
-	g_signal_connect (G_OBJECT (picker), "color-set", G_CALLBACK (color_changed), t);
-
-	if (sdialog->original_source)
-		e_source_get_color (sdialog->original_source, &color);
-	else
-		/* since we don't have an original source here, we want to set
-		 * the initial color */
-		e_source_set_color (sdialog->source, color);
 
-	colorpicker_set_color (GNOME_COLOR_PICKER (picker), color);
+	color_button = gtk_color_button_new_with_color (&color);
+	gtk_label_set_mnemonic_widget (GTK_LABEL (label), color_button);
+	gtk_table_attach (
+		GTK_TABLE (parent), color_button,
+		1, 2, row, row + 1, GTK_EXPAND | GTK_FILL, 0, 0, 0);
+	gtk_widget_show (color_button);
+
+	g_signal_connect (
+		G_OBJECT (color_button), "color-set",
+		G_CALLBACK (color_changed), ec->target);
 
-	return picker;
+	return color_button;
 }
 
 static ECalConfigItem eccp_items[] = {
@@ -414,7 +409,7 @@
 	ECalConfigTargetSource *target;
 
 	if (source) {
-		guint32 color;
+		const gchar *color_spec;
 
 		sdialog->original_source = source;
 		g_object_ref (source);
@@ -423,8 +418,9 @@
 		sdialog->source = e_source_new_from_standalone_xml (xml);
 		g_free (xml);
 
-		if (e_source_get_color (source, &color))
-			e_source_set_color (sdialog->source, color);
+		color_spec = e_source_peek_color_spec (source);
+		if (color_spec != NULL)
+			e_source_set_color_spec (sdialog->source, color_spec);
 	} else {
 		GConfClient *gconf;
 		GSList *l, *ptr, *temp = NULL;
@@ -504,7 +500,7 @@
 	ECalConfigTargetSource *target;
 
 	if (source) {
-		guint32 color;
+		const gchar *color_spec;
 
 		sdialog->original_source = source;
 		g_object_ref (source);
@@ -513,8 +509,8 @@
 		sdialog->source = e_source_new_from_standalone_xml (xml);
 		g_free (xml);
 
-		e_source_get_color (source, &color);
-		e_source_set_color (sdialog->source, color);
+		color_spec = e_source_peek_color_spec (source);
+		e_source_set_color_spec (sdialog->source, color_spec);
 	} else {
 		GConfClient *gconf;
 		GSList *l, *ptr, *temp = NULL;
@@ -589,7 +585,7 @@
 	ECalConfigTargetSource *target;
 
 	if (source) {
-		guint32 color;
+		const gchar *color_spec;
 
 		sdialog->original_source = source;
 		g_object_ref (source);
@@ -598,8 +594,8 @@
 		sdialog->source = e_source_new_from_standalone_xml (xml);
 		g_free (xml);
 
-		e_source_get_color (source, &color);
-		e_source_set_color (sdialog->source, color);
+		color_spec = e_source_peek_color_spec (source);
+		e_source_set_color_spec (sdialog->source, color_spec);
 	} else {
 		GConfClient *gconf;
 		GSList *l;
--- evolution-2.9.4/calendar/gui/dialogs/cal-prefs-dialog.glade.gtk-color-button	2006-07-10 06:42:58.000000000 -0400
+++ evolution-2.9.4/calendar/gui/dialogs/cal-prefs-dialog.glade	2006-12-19 16:07:37.000000000 -0500
@@ -1231,10 +1231,9 @@
 		      </child>
 
 		      <child>
-			<widget class="GnomeColorPicker" id="tasks_due_today_color">
+			<widget class="GtkColorButton" id="tasks_due_today_color">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
-			  <property name="dither">True</property>
 			  <property name="use_alpha">False</property>
 			  <property name="title" translatable="yes">Pick a color</property>
 			  <property name="focus_on_click">True</property>
@@ -1250,10 +1249,9 @@
 		      </child>
 
 		      <child>
-			<widget class="GnomeColorPicker" id="tasks_overdue_color">
+			<widget class="GtkColorButton" id="tasks_overdue_color">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
-			  <property name="dither">True</property>
 			  <property name="use_alpha">False</property>
 			  <property name="title" translatable="yes">Pick a color</property>
 			  <property name="focus_on_click">True</property>
--- evolution-2.9.4/calendar/gui/e-cal-model-tasks.c.gtk-color-button	2006-10-16 14:13:48.000000000 -0400
+++ evolution-2.9.4/calendar/gui/e-cal-model-tasks.c	2006-12-19 16:07:37.000000000 -0500
@@ -1025,14 +1025,28 @@
 static const char *
 ecmt_get_color_for_component (ECalModel *model, ECalModelComponent *comp_data)
 {
+	static gchar color_spec[16];
+	GdkColor color;
+
 	g_return_val_if_fail (E_IS_CAL_MODEL_TASKS (model), NULL);
 	g_return_val_if_fail (comp_data != NULL, NULL);
 
+	/* XXX ECalModel's get_color_for_component() method should really
+	 *     get a GdkColor instead of a color specification string. */
+
 	switch (get_due_status ((ECalModelTasks *) model, comp_data)) {
 	case E_CAL_MODEL_TASKS_DUE_TODAY:
-		return calendar_config_get_tasks_due_today_color ();
+		/* XXX ugly hack */
+		calendar_config_get_tasks_due_today_color (&color);
+		g_snprintf (color_spec, sizeof (color_spec), "#%04x%04x%04x",
+			color.red, color.green, color.blue);
+		return color_spec;
 	case E_CAL_MODEL_TASKS_DUE_OVERDUE:
-		return calendar_config_get_tasks_overdue_color ();
+		/* XXX ugly hack */
+		calendar_config_get_tasks_overdue_color (&color);
+		g_snprintf (color_spec, sizeof (color_spec), "#%04x%04x%04x",
+			color.red, color.green, color.blue);
+		return color_spec;
 	case E_CAL_MODEL_TASKS_DUE_NEVER:
 	case E_CAL_MODEL_TASKS_DUE_FUTURE:
 	case E_CAL_MODEL_TASKS_DUE_COMPLETE:
--- evolution-2.9.4/calendar/gui/memos-component.c.gtk-color-button	2006-10-16 14:13:51.000000000 -0400
+++ evolution-2.9.4/calendar/gui/memos-component.c	2006-12-19 16:07:37.000000000 -0500
@@ -213,7 +213,7 @@
 			calendar_config_set_memos_selected (&selected);
 		}
 
-		e_source_set_color (source, 0xBECEDD);
+		e_source_set_color_spec (source, "#BECEDD");
 		personal_source = source;
 	}
 
--- evolution-2.9.4/calendar/gui/calendar-component.c.gtk-color-button	2006-09-21 01:41:00.000000000 -0400
+++ evolution-2.9.4/calendar/gui/calendar-component.c	2006-12-19 16:07:37.000000000 -0500
@@ -252,7 +252,7 @@
 		}
 
 		g_free (primary_calendar);
-		e_source_set_color (personal_source, 0xBECEDD);
+		e_source_set_color_spec (personal_source, "#BECEDD");
 	}
 
 	if (!on_the_web) {
--- evolution-2.9.4/calendar/gui/e-cal-model.c.gtk-color-button	2006-11-20 09:16:34.000000000 -0500
+++ evolution-2.9.4/calendar/gui/e-cal-model.c	2006-12-19 16:07:37.000000000 -0500
@@ -947,7 +947,7 @@
 ecm_get_color_for_component (ECalModel *model, ECalModelComponent *comp_data)
 {
 	ESource *source;
-	guint32 source_color;
+	const gchar *color_spec;
 	gint i, first_empty = 0;
 	static AssignedColorData assigned_colors[] = {
 		{ "#BECEDD", NULL }, /* 190 206 221     Blue */
@@ -965,9 +965,10 @@
 	g_return_val_if_fail (E_IS_CAL_MODEL (model), NULL);
 
 	source = e_cal_get_source (comp_data->client);
-	if (e_source_get_color (source, &source_color)) {
+	color_spec = e_source_peek_color_spec (source);
+	if (color_spec != NULL) {
 		g_free (comp_data->color);
-		comp_data->color = g_strdup_printf ("#%06x", source_color & 0xffffff);
+		comp_data->color = g_strdup (color_spec);
 		return comp_data->color;
 	}
                                                                    
--- evolution-2.9.4/calendar/gui/calendar-config.h.gtk-color-button	2006-07-17 02:01:28.000000000 -0400
+++ evolution-2.9.4/calendar/gui/calendar-config.h	2006-12-19 16:07:37.000000000 -0500
@@ -31,6 +31,7 @@
 #define _CALENDAR_CONFIG_H_
 
 #include <glib.h>
+#include <gdk/gdk.h>
 #include <libecal/e-cal.h>
 #include <gconf/gconf-client.h>
 
@@ -201,11 +202,11 @@
 guint	  calendar_config_add_notification_primary_memos (GConfClientNotifyFunc func, gpointer data);
 
 /* Colors for the task list */
-const char *calendar_config_get_tasks_due_today_color	(void);
-void	    calendar_config_set_tasks_due_today_color	(const char *color);
+void      calendar_config_get_tasks_due_today_color (GdkColor *color);
+void	  calendar_config_set_tasks_due_today_color (GdkColor *color);
 
-const char *calendar_config_get_tasks_overdue_color	(void);
-void	    calendar_config_set_tasks_overdue_color	(const char *color);
+void      calendar_config_get_tasks_overdue_color (GdkColor *color);
+void	  calendar_config_set_tasks_overdue_color (GdkColor *color);
 
 /* Settings to hide completed tasks. */
 gboolean  calendar_config_get_hide_completed_tasks	(void);
--- evolution-2.9.4/calendar/gui/migration.c.gtk-color-button	2006-10-16 14:13:51.000000000 -0400
+++ evolution-2.9.4/calendar/gui/migration.c	2006-12-19 16:07:37.000000000 -0500
@@ -406,7 +406,7 @@
 	e_source_group_add_source (group, source, -1);
 	g_object_unref (source);
 
-	e_source_set_color (source, 0xFED4D3);
+	e_source_set_color_spec (source, "#FED4D3");
 	e_source_group_set_readonly (group, TRUE);
 
 	return group;
@@ -497,7 +497,7 @@
 		}
 
 		g_free (primary_calendar);		
-		e_source_set_color (source, 0xBECEDD);
+		e_source_set_color_spec (source, "#BECEDD");
 		*personal_source = source;
 	}
 
@@ -590,7 +590,7 @@
 			calendar_config_set_tasks_selected (&selected);
 		}
 
-		e_source_set_color (source, 0xBECEDD);
+		e_source_set_color_spec (source, "#BECEDD");
 		*personal_source = source;
 	}
 
@@ -1098,7 +1098,7 @@
 			calendar_config_set_memos_selected (&selected);
 		}
 
-		e_source_set_color (source, 0xBECEDD);
+		e_source_set_color_spec (source, "#BECEDD");
 		*personal_source = source;
 	}
 
@@ -1161,7 +1161,7 @@
 	e_source_set_property (source, "use_ssl", use_ssl);
 	e_source_set_property (source, "offline_sync", offline_sync ? "1" : "0" );
 
-	e_source_set_color (source, 0xEEBC60);
+	e_source_set_color_spec (source, "#EEBC60");
 	e_source_group_add_source (group, source, -1);
 
 	ids = gconf_client_get_list (client, CALENDAR_CONFIG_MEMOS_SELECTED_MEMOS, GCONF_VALUE_STRING, NULL);
--- evolution-2.9.4/calendar/gui/calendar-config.c.gtk-color-button	2006-12-04 08:14:29.000000000 -0500
+++ evolution-2.9.4/calendar/gui/calendar-config.c	2006-12-19 16:07:37.000000000 -0500
@@ -1219,68 +1219,104 @@
 
 /**
  * calendar_config_get_tasks_due_today_color:
+ * @color: the location to store the color
  *
  * Queries the color to be used to display tasks that are due today.
- *
- * Return value: An X color specification.
  **/
-const char *
-calendar_config_get_tasks_due_today_color (void)
+void
+calendar_config_get_tasks_due_today_color (GdkColor *color)
 {
-	static char *color = NULL;
+	const gchar *key = CALENDAR_CONFIG_TASKS_DUE_TODAY_COLOR;
+	GError *error = NULL;
+	gchar *color_spec;
 
-	if (color)
-		g_free (color);
+	g_return_if_fail (color != NULL);
 
-	color = gconf_client_get_string (config, CALENDAR_CONFIG_TASKS_DUE_TODAY_COLOR, NULL);
-	return color;
+	color_spec = gconf_client_get_string (config, key, &error);
+
+	if (color_spec != NULL && !gdk_color_parse (color_spec, color))
+		g_warning ("Unknown color \"%s\"", color_spec);
+	else if (error != NULL) {
+		g_warning ("%s", error->message);
+		g_error_free (error);
+	}
+
+	g_free (color_spec);
 }
 
 /**
  * calendar_config_set_tasks_due_today_color:
- * @color: X color specification
+ * @color: a #GdkColor
  *
  * Sets the color to be used to display tasks that are due today.
  **/
 void
-calendar_config_set_tasks_due_today_color (const char *color)
+calendar_config_set_tasks_due_today_color (GdkColor *color)
 {
+	const gchar *key = CALENDAR_CONFIG_TASKS_DUE_TODAY_COLOR;
+	GError *error = NULL;
+	gchar color_spec[16];
+
 	g_return_if_fail (color != NULL);
 
-	gconf_client_set_string (config, CALENDAR_CONFIG_TASKS_DUE_TODAY_COLOR, color, NULL);
+	g_snprintf (color_spec, sizeof (color_spec), "#%04x%04x%04x",
+		color->red, color->green, color->blue);
+
+	if (!gconf_client_set_string (config, key, color_spec, &error)) {
+		g_warning ("%s", error->message);
+		g_error_free (error);
+	}
 }
 
 /**
  * calendar_config_get_tasks_overdue_color:
+ * @color: the location to store the color
  *
  * Queries the color to be used to display overdue tasks.
- *
- * Return value: An X color specification.
  **/
-const char *
-calendar_config_get_tasks_overdue_color (void)
+void
+calendar_config_get_tasks_overdue_color (GdkColor *color)
 {
-	static char *color = NULL;
+	const gchar *key = CALENDAR_CONFIG_TASKS_OVERDUE_COLOR;
+	GError *error = NULL;
+	gchar *color_spec;
 
-	if (color)
-		g_free (color);
+	g_return_if_fail (color != NULL);
 
-	color = gconf_client_get_string (config, CALENDAR_CONFIG_TASKS_OVERDUE_COLOR, NULL);
-	return color;
+	color_spec = gconf_client_get_string (config, key, &error);
+
+	if (color_spec != NULL && !gdk_color_parse (color_spec, color))
+		g_warning ("Unknown color \"%s\"", color_spec);
+	else if (error != NULL) {
+		g_warning ("%s", error->message);
+		g_error_free (error);
+	}
+
+	g_free (color_spec);
 }
 
 /**
  * calendar_config_set_tasks_overdue_color:
- * @color: X color specification
+ * @color: a #GdkColor
  *
  * Sets the color to be used to display overdue tasks.
  **/
 void
-calendar_config_set_tasks_overdue_color (const char *color)
+calendar_config_set_tasks_overdue_color (GdkColor *color)
 {
+	const gchar *key = CALENDAR_CONFIG_TASKS_OVERDUE_COLOR;
+	GError *error = NULL;
+	gchar color_spec[16];
+
 	g_return_if_fail (color != NULL);
 
-	gconf_client_set_string (config, CALENDAR_CONFIG_TASKS_OVERDUE_COLOR, color, NULL);
+	g_snprintf (color_spec, sizeof (color_spec), "#%04x%04x%04x",
+		color->red, color->green, color->blue);
+
+	if (!gconf_client_set_string (config, key, color_spec, &error)) {
+		g_warning ("%s", error->message);
+		g_error_free (error);
+	}
 }
 
 /**


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/evolution/devel/.cvsignore,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- .cvsignore	8 Dec 2006 00:53:17 -0000	1.62
+++ .cvsignore	19 Dec 2006 22:24:50 -0000	1.63
@@ -1,4 +1,4 @@
-evolution-2.9.3.tar.bz2
+evolution-2.9.4.tar.bz2
 evolution16.png
 evolution22.png
 evolution24.png


Index: evolution.spec
===================================================================
RCS file: /cvs/dist/rpms/evolution/devel/evolution.spec,v
retrieving revision 1.218
retrieving revision 1.219
diff -u -r1.218 -r1.219
--- evolution.spec	15 Dec 2006 17:18:03 -0000	1.218
+++ evolution.spec	19 Dec 2006 22:24:50 -0000	1.219
@@ -1,7 +1,7 @@
 %define bug_buddy_version 2.15.90
 %define dbus_glib_version 0.70
 %define dbus_version 0.90
-%define eds_version 1.9.1
+%define eds_version 1.9.4
 %define gnome_doc_utils_version 0.8.0
 %define gnome_icon_theme_version 1.3.6
 %define gnome_pilot_version 2.0.13
@@ -43,8 +43,8 @@
 ### Abstract ###
 
 Name: evolution
-Version: 2.9.3
-Release: 4%{?dist}
+Version: 2.9.4
+Release: 1%{?dist}
 License: GPL
 Group: Applications/Productivity
 Summary: GNOME's next-generation groupware suite
@@ -146,9 +146,6 @@
 # RH bug #215466 / RH bug #218589 / GNOME bug #377511
 Patch37: evolution-2.9.2-optional-participant.patch
 
-# GNOME bug #382431
-Patch38: evolution-2.9.3-implicit-function-declaration.patch
-
 # RH bug #215695 / GNOME bug #383027
 Patch39: evolution-2.9.3-dont-assume-default-account.patch
 
@@ -167,6 +164,9 @@
 # RH bug #215467 / GNOME bug #380644
 Patch44: evolution-2.9.3-meeting-list-view.patch
 
+# GNOME bug #373116
+Patch45: evolution-2.9.3-gtk-color-button.patch
+
 ## Dependencies ###
 
 Requires: ORBit2 >= %{orbit2_version}
@@ -307,13 +307,13 @@
 %patch35 -p1 -b .gtk-font-button
 %patch36 -p1 -b .pilot-link-0.12
 %patch37 -p1 -b .optional-participant
-%patch38 -p1 -b .implicit-function-declaration
 %patch39 -p1 -b .dont-assume-default-account
 #%patch40 -p1 -b .view-attachment-uri
 %patch41 -p1 -b .adopt-icons
 %patch42 -p1 -b .source-path-entry
 %patch43 -p1 -b .unread-messages
 %patch44 -p1 -b .meeting-list-view
+%patch45 -p1 -b .gtk-color-button
 
 mkdir -p krb5-fakeprefix/include
 mkdir -p krb5-fakeprefix/lib
@@ -395,6 +395,7 @@
 	-DG_DISABLE_DEPRECATED=1 \
 	-DGDK_PIXBUF_DISABLE_DEPRECATED=1 \
 	-DGDK_DISABLE_DEPRECATED=1 \
+	-DEDS_DISABLE_DEPRECATED=1 \
 	-Werror-implicit-function-declaration"
 %endif
 
@@ -728,6 +729,14 @@
 %{_libdir}/evolution/%{evo_major}/libmenus.so
 
 %changelog
+* Tue Dec 19 2006 Matthew Barnes <mbarnes at redhat.com> - 2.9.4-1.fc7
+- Update to 2.9.4
+- Bump eds_version to 1.9.4 due to soname changes.
+- Remove patch for GNOME bug #382431 (fixed upstream).
+
+* Fri Dec 15 2006 Matthew Barnes <mbarnes at redhat.com> - 2.9.3-5.fc7
+- Add patch for GNOME bug #373116 (use GtkColorButton).
+
 * Fri Dec 15 2006 Matthew Barnes <mbarnes at redhat.com> - 2.9.3-4.fc7
 - Disable patch for RH bug #216537, which caused RH bug #219228.
 


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/evolution/devel/sources,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- sources	8 Dec 2006 00:53:17 -0000	1.62
+++ sources	19 Dec 2006 22:24:50 -0000	1.63
@@ -1,4 +1,4 @@
-03c29ef09dbd1b04623f736cbd8e14a7  evolution-2.9.3.tar.bz2
+8915ed5f5b4c0351f05a428111b46216  evolution-2.9.4.tar.bz2
 4737f9b111e5e4b2fccc9e9b464c4b01  evolution16.png
 de663fa442d61f53dc058dd20c77da8e  evolution22.png
 d33896d33b5db2201e051664e96b1100  evolution24.png


--- evolution-2.9.2-gtk-color-button.patch DELETED ---




More information about the fedora-cvs-commits mailing list