Index: widgets/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/widgets/ChangeLog,v
retrieving revision 1.178
diff -u -p -r1.178 ChangeLog
--- widgets/ChangeLog	18 Sep 2006 17:31:22 -0000	1.178
+++ widgets/ChangeLog	22 Sep 2006 16:50:40 -0000
@@ -1,3 +1,11 @@
+2006-09-22  Matthew Barnes  <mbarnes@redhat.com>
+
+	** Fixes bug #357216
+
+	* text/e-entry.c:
+	Remove "font", "fontset", and "gdk_font" properties, since they
+	forward gets and sets to non-existant properties in entry->item.
+
 2006-09-18  Matthew Barnes  <mbarnes@redhat.com>
 
 	** Fixes bug #351332
Index: widgets/table/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/widgets/table/ChangeLog,v
retrieving revision 1.36
diff -u -p -r1.36 ChangeLog
--- widgets/table/ChangeLog	24 Aug 2006 01:07:50 -0000	1.36
+++ widgets/table/ChangeLog	22 Sep 2006 16:50:46 -0000
@@ -1,3 +1,19 @@
+2006-09-22  Matthew Barnes  <mbarnes@redhat.com>
+
+	** Fixes bug #357216
+
+	* e-table-field-chooser-item.c:
+	* e-table-field-chooser-item.h:
+	* e-table-group-container.c:
+	* e-table-group-container.h:
+	Replace deprecated GdkFont with PangoFontDescription.
+
+	* e-table-header-item.c:
+	* e-table-header-item.h:
+	Replace deprecated GdkFont with PangoFontDescription.
+	Rename "fontset" property to "font-desc", and change the property
+	type to a boxed PangoFontDescription.
+
 2006-08-24  Hiroyuki Ikezoe  <poincare@ikezoe.net>
 
 	** Fixes bug #337582
Index: widgets/table/e-table-field-chooser-item.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/table/e-table-field-chooser-item.c,v
retrieving revision 1.26
diff -u -p -r1.26 e-table-field-chooser-item.c
--- widgets/table/e-table-field-chooser-item.c	18 Sep 2006 13:06:25 -0000	1.26
+++ widgets/table/e-table-field-chooser-item.c	22 Sep 2006 16:50:46 -0000
@@ -84,9 +84,9 @@ etfci_dispose (GObject *object)
 		g_object_unref (etfci->combined_header);
 	etfci->combined_header = NULL;
 
-	if (etfci->font)
-		gdk_font_unref(etfci->font);
-	etfci->font = NULL;
+	if (etfci->font_desc)
+		pango_font_description_free (etfci->font_desc);
+	etfci->font_desc = NULL;
 
 	if (G_OBJECT_CLASS (etfci_parent_class)->dispose)
 		(*G_OBJECT_CLASS (etfci_parent_class)->dispose) (object);
@@ -219,11 +219,13 @@ etfci_update (GnomeCanvasItem *item, dou
 static void
 etfci_font_load (ETableFieldChooserItem *etfci)
 {
-	if (etfci->font)
-		gdk_font_unref (etfci->font);
+	GtkStyle *style;
+
+	if (etfci->font_desc)
+		pango_font_description_free (etfci->font_desc);
 
-	etfci->font = gtk_style_get_font (GTK_WIDGET(GNOME_CANVAS_ITEM(etfci)->canvas)->style);
-	gdk_font_ref(etfci->font);
+	style = GTK_WIDGET (GNOME_CANVAS_ITEM (etfci)->canvas)->style;
+	etfci->font_desc = pango_font_description_copy (style->font_desc);
 }
 
 static void
@@ -419,7 +421,7 @@ etfci_realize (GnomeCanvasItem *item)
 	if (GNOME_CANVAS_ITEM_CLASS (etfci_parent_class)-> realize)
 		(*GNOME_CANVAS_ITEM_CLASS (etfci_parent_class)->realize)(item);
 
-	if (!etfci->font)
+	if (!etfci->font_desc)
 		etfci_font_load (etfci);
 
 	etfci->drag_end_id = g_signal_connect (
@@ -436,9 +438,9 @@ etfci_unrealize (GnomeCanvasItem *item)
 {
 	ETableFieldChooserItem *etfci = E_TABLE_FIELD_CHOOSER_ITEM (item);
 
-	if (etfci->font)
-		gdk_font_unref (etfci->font);
-	etfci->font = NULL;
+	if (etfci->font_desc)
+		pango_font_description_free (etfci->font_desc);
+	etfci->font_desc = NULL;
 
 	g_signal_handler_disconnect (item->canvas, etfci->drag_end_id);
 	etfci->drag_end_id = 0;
@@ -677,7 +679,7 @@ etfci_init (GnomeCanvasItem *item)
 	
 	etfci->height = etfci->width = 0;
 
-	etfci->font = NULL;
+	etfci->font_desc = NULL;
 
 	etfci->full_header_structure_change_id = 0;
 	etfci->full_header_dimension_change_id = 0;
Index: widgets/table/e-table-field-chooser-item.h
===================================================================
RCS file: /cvs/gnome/evolution/widgets/table/e-table-field-chooser-item.h,v
retrieving revision 1.10
diff -u -p -r1.10 e-table-field-chooser-item.h
--- widgets/table/e-table-field-chooser-item.h	17 Jun 2005 15:20:34 -0000	1.10
+++ widgets/table/e-table-field-chooser-item.h	22 Sep 2006 16:50:46 -0000
@@ -44,7 +44,7 @@ typedef struct {
 
 	double           height, width;
 
-	GdkFont         *font;
+	PangoFontDescription *font_desc;
 
 	/*
 	 * Ids
Index: widgets/table/e-table-group-container.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/table/e-table-group-container.c,v
retrieving revision 1.73
diff -u -p -r1.73 e-table-group-container.c
--- widgets/table/e-table-group-container.c	18 Jul 2006 10:29:46 -0000	1.73
+++ widgets/table/e-table-group-container.c	22 Sep 2006 16:50:47 -0000
@@ -105,9 +105,9 @@ etgc_dispose (GObject *object)
 	if (etgc->children)
 		e_table_group_container_list_free (etgc);
 
-	if (etgc->font)
-		gdk_font_unref (etgc->font);
-	etgc->font = NULL;
+	if (etgc->font_desc)
+		pango_font_description_free (etgc->font_desc);
+	etgc->font_desc = NULL;
 
 	if (etgc->ecol)
 		g_object_unref (etgc->ecol);
@@ -148,6 +148,7 @@ e_table_group_container_construct (Gnome
 {
 	ETableCol *col;
 	ETableSortColumn column = e_table_sort_info_grouping_get_nth(sort_info, n);
+	GtkStyle *style;
 
 	col = e_table_header_get_column_by_col_idx(full_header, column.column);
 	if (col == NULL)
@@ -161,9 +162,8 @@ e_table_group_container_construct (Gnome
 	etgc->n = n;
 	etgc->ascending = column.ascending;
 
-	etgc->font = gtk_style_get_font (GTK_WIDGET (GNOME_CANVAS_ITEM (etgc)->canvas)->style);
-	
-	gdk_font_ref (etgc->font);
+	style = GTK_WIDGET (GNOME_CANVAS_ITEM (etgc)->canvas)->style;
+	etgc->font_desc = pango_font_description_copy (style->font_desc);
 
 	etgc->open = TRUE;
 }
@@ -1006,8 +1006,18 @@ etgc_reflow (GnomeCanvasItem *item, gint
 			gdouble item_height = 0;
 			gdouble item_width = 0;
 			
-			if (etgc->font)
-				extra_height += etgc->font->ascent + etgc->font->descent + BUTTON_PADDING * 2;
+			if (etgc->font_desc) {
+				PangoContext *context;
+				PangoFontMetrics *metrics;
+
+				context = gtk_widget_get_pango_context (GTK_WIDGET (etgc));
+				metrics = pango_context_get_metrics (context, etgc->font_desc, NULL);
+				extra_height +=
+					pango_font_metrics_get_ascent (metrics) +
+					pango_font_metrics_get_descent (metrics) +
+					BUTTON_PADDING * 2;
+				pango_font_metrics_unref (metrics);
+			}
 			
 			extra_height = MAX(extra_height, BUTTON_HEIGHT + BUTTON_PADDING * 2);
 				
Index: widgets/table/e-table-group-container.h
===================================================================
RCS file: /cvs/gnome/evolution/widgets/table/e-table-group-container.h,v
retrieving revision 1.21
diff -u -p -r1.21 e-table-group-container.h
--- widgets/table/e-table-group-container.h	17 Jun 2005 15:20:34 -0000	1.21
+++ widgets/table/e-table-group-container.h	22 Sep 2006 16:50:47 -0000
@@ -57,7 +57,7 @@ typedef struct {
 	 */
 	GnomeCanvasItem *rect;
 
-	GdkFont *font;
+	PangoFontDescription *font_desc;
 
 	gdouble width, height, minimum_width;
 
Index: widgets/table/e-table-header-item.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/table/e-table-header-item.c,v
retrieving revision 1.137
diff -u -p -r1.137 e-table-header-item.c
--- widgets/table/e-table-header-item.c	18 Sep 2006 13:06:26 -0000	1.137
+++ widgets/table/e-table-header-item.c	22 Sep 2006 16:50:48 -0000
@@ -101,7 +101,7 @@ enum {
 	PROP_TABLE_HEADER,
 	PROP_FULL_HEADER,
 	PROP_DND_CODE,
-	PROP_TABLE_FONTSET,
+	PROP_TABLE_FONT_DESC,
 	PROP_SORT_INFO,
 	PROP_TABLE,
 	PROP_TREE
@@ -232,36 +232,18 @@ ethi_update (GnomeCanvasItem *item, doub
 }
 
 static void
-ethi_font_set (ETableHeaderItem *ethi, GdkFont *font)
+ethi_font_set (ETableHeaderItem *ethi, PangoFontDescription *font_desc)
 {
-	if (ethi->font)
-		gdk_font_unref (ethi->font);
+	if (ethi->font_desc)
+		pango_font_description_free (ethi->font_desc);
+
+	ethi->font_desc = pango_font_description_copy (font_desc);
 
-	ethi->font = font;
-	gdk_font_ref (font);
-	
 	ethi->height = e_table_header_item_get_height (ethi);
 	e_canvas_item_request_reflow(GNOME_CANVAS_ITEM(ethi));
 }
 
 static void
-ethi_font_load (ETableHeaderItem *ethi, const char *fontname)
-{
-	GdkFont *font = NULL;
-
-	if (fontname != NULL)
-		font = gdk_fontset_load (fontname);
-
-	if (font == NULL) {
-		font = gtk_style_get_font (GTK_WIDGET (GNOME_CANVAS_ITEM (ethi)->canvas)->style);
-		gdk_font_ref (font);
-	}
-	
-	ethi_font_set (ethi, font);
-	gdk_font_unref (font);
-}
-
-static void
 ethi_drop_table_header (ETableHeaderItem *ethi)
 {
 	GObject *header;
@@ -345,8 +327,8 @@ ethi_set_property (GObject *object,
 		ethi->dnd_code = g_strdup (g_value_get_string (value));
 		break;
 
-	case PROP_TABLE_FONTSET:
-		ethi_font_load (ethi, g_value_get_string (value));
+	case PROP_TABLE_FONT_DESC:
+		ethi_font_set (ethi, g_value_get_boxed (value));
 		break;
 
 	case PROP_SORT_INFO:
@@ -902,8 +884,8 @@ ethi_realize (GnomeCanvasItem *item)
 	if (GNOME_CANVAS_ITEM_CLASS (ethi_parent_class)-> realize)
 		(*GNOME_CANVAS_ITEM_CLASS (ethi_parent_class)->realize)(item);
 
-	if (!ethi->font)
-		ethi_font_set (ethi, gtk_style_get_font (GTK_WIDGET (item->canvas)->style));
+	if (!ethi->font_desc)
+		ethi_font_set (ethi, GTK_WIDGET (item->canvas)->style->font_desc);
 
 	/*
 	 * Now, configure DnD
@@ -937,7 +919,7 @@ ethi_unrealize (GnomeCanvasItem *item)
 {
 	ETableHeaderItem *ethi = E_TABLE_HEADER_ITEM (item);
 
-	gdk_font_unref (ethi->font);
+	pango_font_description_free (ethi->font_desc);
 
 	g_signal_handler_disconnect (item->canvas, ethi->drag_motion_id);
 	g_signal_handler_disconnect (item->canvas, ethi->drag_leave_id);
@@ -1894,12 +1876,12 @@ ethi_class_init (GObjectClass *object_cl
 							      NULL,
 							      G_PARAM_READWRITE));
 
-	g_object_class_install_property (object_class, PROP_TABLE_FONTSET,
-					 g_param_spec_string ("fontset",
-							      _("Fontset"),
-							      /*_( */"XXX blurb" /*)*/,
-							      NULL,
-							      G_PARAM_WRITABLE));
+	g_object_class_install_property (object_class, PROP_TABLE_FONT_DESC,
+					 g_param_spec_boxed ("font-desc",
+							     _("Font Description"),
+							     /*_( */"XXX blurb" /*)*/,
+							     PANGO_TYPE_FONT_DESCRIPTION,
+							     G_PARAM_WRITABLE));
 
 	g_object_class_install_property (object_class, PROP_FULL_HEADER,
 					 g_param_spec_object ("full_header",
Index: widgets/table/e-table-header-item.h
===================================================================
RCS file: /cvs/gnome/evolution/widgets/table/e-table-header-item.h,v
retrieving revision 1.32
diff -u -p -r1.32 e-table-header-item.h
--- widgets/table/e-table-header-item.h	17 Jun 2005 15:20:34 -0000	1.32
+++ widgets/table/e-table-header-item.h	22 Sep 2006 16:50:49 -0000
@@ -47,7 +47,7 @@ typedef struct {
 	GdkCursor       *change_cursor;
 
 	short            height, width;
-	GdkFont         *font;
+	PangoFontDescription *font_desc;
 
 	/*
 	 * Used during resizing;  Could be shorts
Index: widgets/text/e-entry.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/text/e-entry.c,v
retrieving revision 1.64
diff -u -p -r1.64 e-entry.c
--- widgets/text/e-entry.c	21 Aug 2005 18:10:23 -0000	1.64
+++ widgets/text/e-entry.c	22 Sep 2006 16:50:49 -0000
@@ -70,9 +70,6 @@ enum {
 	PROP_MODEL,
 	PROP_EVENT_PROCESSOR,
 	PROP_TEXT,
-	PROP_FONT,
-        PROP_FONTSET,
-	PROP_FONT_GDK,
 	PROP_ANCHOR,
 	PROP_JUSTIFICATION,
 	PROP_X_OFFSET,
@@ -880,10 +877,6 @@ et_get_property (GObject *object,
 		g_object_get_property (G_OBJECT (item), "text", value);
 		break;
 
-	case PROP_FONT_GDK:
-		g_object_get_property (G_OBJECT (item), "font_gdk", value);
-		break;
-
 	case PROP_JUSTIFICATION:
 		g_object_get_property (G_OBJECT (item), "justification", value);
 		break;
@@ -986,25 +979,6 @@ et_set_property (GObject *object,
 			gtk_widget_queue_resize (widget);
 		break;
 
-	case PROP_FONT:
-		g_object_set_property (G_OBJECT (item), "font", value);
-		d(g_print("%s: font: %s\n", __FUNCTION__, g_value_get_string (value)));
-		if (entry->priv->emulate_label_resize)
-			gtk_widget_queue_resize (widget);
-		break;
-
-	case PROP_FONTSET:
-		g_object_set_property (G_OBJECT (item), "fontset", value);
-		if (entry->priv->emulate_label_resize)
-			gtk_widget_queue_resize (widget);
-		break;
-
-	case PROP_FONT_GDK:
-		g_object_set_property (G_OBJECT (item), "font_gdk", value);
-		if (entry->priv->emulate_label_resize)
-			gtk_widget_queue_resize (widget);
-		break;
-
 	case PROP_JUSTIFICATION:
 		entry->priv->justification = g_value_get_enum (value);
 		g_object_get(item,
@@ -1250,27 +1224,6 @@ e_entry_class_init (GObjectClass *object
 							      _( "Text" ),
 							      NULL,
 							      G_PARAM_READWRITE));
-
-	g_object_class_install_property (object_class, PROP_FONT,
-					 g_param_spec_string ("font",
-							      _( "Font" ),
-							      _( "Font" ),
-							      NULL,
-							      G_PARAM_READWRITE));
-
-	g_object_class_install_property (object_class, PROP_FONTSET,
-					 g_param_spec_string ("fontset",
-							      _( "Fontset" ),
-							      _( "Fontset" ),
-							      NULL,
-							      G_PARAM_READWRITE));
-
-	g_object_class_install_property (object_class, PROP_FONT_GDK,
-					 g_param_spec_boxed ("font_gdk",
-							     _( "GDKFont" ),
-							     _( "GDKFont" ),
-							     GDK_TYPE_FONT,
-							     G_PARAM_WRITABLE));
 
 	g_object_class_install_property (object_class, PROP_JUSTIFICATION,
 					 g_param_spec_enum ("justification",
