Index: data/gedit.schemas.in
===================================================================
RCS file: /cvs/gnome/gedit/data/gedit.schemas.in,v
retrieving revision 1.13
diff -u -p -r1.13 gedit.schemas.in
--- data/gedit.schemas.in	5 Apr 2004 16:24:58 -0000	1.13
+++ data/gedit.schemas.in	7 Jun 2004 15:32:51 -0000
@@ -371,6 +371,20 @@
         <default>Monospace Regular 9</default>
 	<short>Body Font for Printing</short>
 	<long>Specifies the font to use for a document's body when
+	printing documents. This is a gnome-print font name and replaced by
+        print_font_body_pango.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gedit-2/preferences/print/fonts/print_font_body_pango</key>
+      <applyto>/apps/gedit-2/preferences/print/fonts/print_font_body_pango</applyto>
+      <owner>gedit</owner>
+      <type>string</type>
+      <locale name="C">
+        <default>Monospace 9</default>
+	<short>Body Font for Printing</short>
+	<long>Specifies the font to use for a document's body when
 	printing documents.</long>
       </locale>
     </schema>
@@ -385,6 +399,21 @@
 	<short>Header Font for Printing</short>
 	<long>Specifies the font to use for page headers when printing
 	a document.  This will only take effect if the "Print Header"
+	option is turned on. This is a gnome-print font name and replaced by
+        print_font_header_pango.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gedit-2/preferences/print/fonts/print_font_header_pango</key>
+      <applyto>/apps/gedit-2/preferences/print/fonts/print_font_header_pango</applyto>
+      <owner>gedit</owner>
+      <type>string</type>
+      <locale name="C">
+        <default>Sans 11</default>
+	<short>Header Font for Printing</short>
+	<long>Specifies the font to use for page headers when printing
+	a document. This will only take effect if the "Print Header"
 	option is turned on.</long>
       </locale>
     </schema>
@@ -396,6 +425,21 @@
       <type>string</type>
       <locale name="C">
         <default>Sans Regular 8</default>
+	<short>Line Number Font for Printing</short>
+	<long>Specifies the font to use for line numbers when
+	printing.  This will only take effect if the "Print Line
+	Numbers" option is non-zero. This is a gnome-print font name
+	and replaced by print_font_numbers_pango.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gedit-2/preferences/print/fonts/print_font_numbers_pango</key>
+      <applyto>/apps/gedit-2/preferences/print/fonts/print_font_numbers_pango</applyto>
+      <owner>gedit</owner>
+      <type>string</type>
+      <locale name="C">
+        <default>Sans 8</default>
 	<short>Line Number Font for Printing</short>
 	<long>Specifies the font to use for line numbers when
 	printing.  This will only take effect if the "Print Line
Index: gedit/gedit-prefs-manager.c
===================================================================
RCS file: /cvs/gnome/gedit/gedit/gedit-prefs-manager.c,v
retrieving revision 1.22
diff -u -p -r1.22 gedit-prefs-manager.c
--- gedit/gedit-prefs-manager.c	18 Sep 2003 18:44:25 -0000	1.22
+++ gedit/gedit-prefs-manager.c	7 Jun 2004 15:32:51 -0000
@@ -36,6 +36,7 @@
 #include <gconf/gconf-value.h>
 
 #include <libgnome/gnome-i18n.h>
+#include <libgnomeprint/gnome-font.h>
 
 #include "gedit-prefs-manager.h"
 #include "gedit-prefs-manager-private.h"
@@ -807,39 +808,210 @@ DEFINE_INT_PREF (print_line_numbers,
 		 GPM_DEFAULT_PRINT_LINE_NUMBERS)
 		 
 
-/* Font used to print the body of documents */
-DEFINE_STRING_PREF (print_font_body,
-		    GPM_PRINT_FONT_BODY,
-		    GPM_DEFAULT_PRINT_FONT_BODY);
+/* The printing font entries are done in custom code because we
+ * need to implement transitioning between old gnome-print font
+ * names and new Pango fontnames
+ */
+
+/*
+ * The following routines are duplicated in gtksourceview/gtksourceview/gtksourceprintjob.c
+ */
+
+/* Do this ourselves since gnome_font_find_closest() doesn't call
+ * gnome_font_face_find_closest() (probably a gnome-print bug)
+ */
+static void
+face_and_size_from_full_name (const guchar   *name,
+			      GnomeFontFace **face,
+			      gdouble        *size)
+{
+	char *copy;
+	char *str_size;
+
+	copy = g_strdup (name);
+	str_size = strrchr (copy, ' ');
+	if (str_size) {
+		*str_size = 0;
+		str_size ++;
+		*size = atof (str_size);
+	} else {
+		*size = 12;
+	}
+
+	*face = gnome_font_face_find_closest (copy);
+	g_free (copy);
+}
+
+static PangoFontDescription *
+font_description_from_gnome_font_name (const char *font_name)
+{
+	GnomeFontFace *face;
+	PangoFontDescription *desc;
+	PangoStyle style;
+	PangoWeight weight;
+	gdouble size;
+
+	face_and_size_from_full_name (font_name, &face, &size);
+
+	/* Pango and GnomePrint have basically the same numeric weight values */
+	weight = (PangoWeight) gnome_font_face_get_weight_code (face);
+	style = gnome_font_face_is_italic (face) ? PANGO_STYLE_ITALIC : PANGO_STYLE_NORMAL;
+
+	desc = pango_font_description_new ();
+	pango_font_description_set_family (desc, gnome_font_face_get_family_name (face));
+	pango_font_description_set_weight (desc, weight);
+	pango_font_description_set_style (desc, style);
+	pango_font_description_set_size (desc, size * PANGO_SCALE);
+
+	g_object_unref (face);
+
+	return desc;
+}
+
+static char *
+font_name_from_gnome_font_name (const char *gnome_name)
+{
+	PangoFontDescription *desc;
+	gchar *pango_name;
+
+	desc = font_description_from_gnome_font_name (gnome_name);
+	pango_name = pango_font_description_to_string (desc);
+	pango_font_description_free (desc);
+
+	return pango_name;
+}
+
+static gchar *
+get_string_without_default (GConfClient *gconf_client,
+			    const char  *key,
+			    GError     **error)
+{
+	GConfValue *value;
+	gchar *result = NULL;
+	
+	value = gconf_client_get_without_default (gconf_client, key, error);
+	if (value && value->type == GCONF_VALUE_STRING)
+	{
+		result = g_strdup (gconf_value_get_string (value));
+		gconf_value_free (value);
+	}
+
+	return result;
+}
+
+static gchar *
+gedit_prefs_manager_get_font (const gchar *pango_key,
+			      const gchar *gnome_print_key,
+			      const gchar *def)
+{
+	gchar *pango_value;
+	gchar *gnome_print_value;
+	
+	/* if the new pango key isn't writable, we don't want an old value to
+	 * overwrite it. Otherwise, we first look whether the pango key has
+	 * been set explicitely. If the pango key hasn't been set, but the
+	 * gnome-print key has, we use that and convert it into a pango font name.
+	 */
+	if (gedit_prefs_manager_key_is_writable (pango_key))
+	{
+		pango_value = get_string_without_default (gedit_prefs_manager->gconf_client,
+							  pango_key,
+							  NULL);
+		if (pango_value)
+			return pango_value;
+		
+		gnome_print_value = get_string_without_default (gedit_prefs_manager->gconf_client,
+								gnome_print_key,
+								NULL);
+
+		if (gnome_print_value) {
+			pango_value = font_name_from_gnome_font_name (gnome_print_value);
+			g_free (gnome_print_value);
+			
+			return pango_value;
+		}
+	}
+
+	return gedit_prefs_manager_get_string (pango_key, def);
+}
+
+gchar *
+gedit_prefs_manager_get_print_font_body (void)
+{
+	return gedit_prefs_manager_get_font (GPM_PRINT_FONT_BODY_PANGO,
+					     GPM_PRINT_FONT_BODY,
+					     GPM_DEFAULT_PRINT_FONT_BODY_PANGO);
+}
+
+void
+gedit_prefs_manager_set_print_font_body (const gchar* v)
+{
+	gedit_prefs_manager_set_string (GPM_PRINT_FONT_BODY_PANGO, v);
+}
+
+gboolean
+gedit_prefs_manager_print_font_body_can_set (void)
+{
+	return gedit_prefs_manager_key_is_writable (GPM_PRINT_FONT_BODY_PANGO);
+}		
 
 const gchar *
 gedit_prefs_manager_get_default_print_font_body (void)
 {
-	return GPM_DEFAULT_PRINT_FONT_BODY;
+	return GPM_DEFAULT_PRINT_FONT_BODY_PANGO;
 }
 
-/* Font used to print headers */
-DEFINE_STRING_PREF (print_font_header,
-		    GPM_PRINT_FONT_HEADER,
-		    GPM_DEFAULT_PRINT_FONT_HEADER);
+gchar *
+gedit_prefs_manager_get_print_font_header (void)
+{
+	return gedit_prefs_manager_get_font (GPM_PRINT_FONT_HEADER_PANGO,
+					     GPM_PRINT_FONT_HEADER,
+					     GPM_DEFAULT_PRINT_FONT_HEADER_PANGO);
+}
+
+void
+gedit_prefs_manager_set_print_font_header (const gchar* v)
+{
+	gedit_prefs_manager_set_string (GPM_PRINT_FONT_HEADER_PANGO, v);
+}
+
+gboolean
+gedit_prefs_manager_print_font_header_can_set (void)
+{
+	return gedit_prefs_manager_key_is_writable (GPM_PRINT_FONT_HEADER_PANGO);
+}		
 
 const gchar *
 gedit_prefs_manager_get_default_print_font_header (void)
 {
-	return GPM_DEFAULT_PRINT_FONT_HEADER;
+	return GPM_DEFAULT_PRINT_FONT_HEADER_PANGO;
+}
+
+gchar *
+gedit_prefs_manager_get_print_font_numbers (void)
+{
+	return gedit_prefs_manager_get_font (GPM_PRINT_FONT_NUMBERS_PANGO,
+					     GPM_PRINT_FONT_NUMBERS,
+					     GPM_DEFAULT_PRINT_FONT_NUMBERS_PANGO);
 }
 
-/* Font used to print line numbers */
-DEFINE_STRING_PREF (print_font_numbers,
-		    GPM_PRINT_FONT_NUMBERS,
-		    GPM_DEFAULT_PRINT_FONT_NUMBERS);
+void
+gedit_prefs_manager_set_print_font_numbers (const gchar* v)
+{
+	gedit_prefs_manager_set_string (GPM_PRINT_FONT_NUMBERS_PANGO, v);
+}
+
+gboolean
+gedit_prefs_manager_print_font_numbers_can_set (void)
+{
+	return gedit_prefs_manager_key_is_writable (GPM_PRINT_FONT_NUMBERS_PANGO);
+}		
 
 const gchar *
 gedit_prefs_manager_get_default_print_font_numbers (void)
 {
-	return GPM_DEFAULT_PRINT_FONT_NUMBERS;
+	return GPM_DEFAULT_PRINT_FONT_NUMBERS_PANGO;
 }
-
 
 /* Max number of files in "Recent Files" menu. 
  * This is configurable only using gconftool or gconf-editor 
Index: gedit/gedit-prefs-manager.h
===================================================================
RCS file: /cvs/gnome/gedit/gedit/gedit-prefs-manager.h,v
retrieving revision 1.16
diff -u -p -r1.16 gedit-prefs-manager.h
--- gedit/gedit-prefs-manager.h	12 Feb 2004 12:17:43 -0000	1.16
+++ gedit/gedit-prefs-manager.h	7 Jun 2004 15:32:51 -0000
@@ -98,8 +98,11 @@
 
 #define GPM_PRINT_FONT_DIR		GPM_PREFS_DIR "/print/fonts"
 #define GPM_PRINT_FONT_BODY		GPM_PRINT_FONT_DIR "/print_font_body"
+#define GPM_PRINT_FONT_BODY_PANGO	GPM_PRINT_FONT_DIR "/print_font_body_pango"
 #define GPM_PRINT_FONT_HEADER		GPM_PRINT_FONT_DIR "/print_font_header"
+#define GPM_PRINT_FONT_HEADER_PANGO	GPM_PRINT_FONT_DIR "/print_font_header_pango"
 #define GPM_PRINT_FONT_NUMBERS		GPM_PRINT_FONT_DIR "/print_font_numbers"
+#define GPM_PRINT_FONT_NUMBERS_PANGO	GPM_PRINT_FONT_DIR "/print_font_numbers_pango"
 
 #define GPM_WINDOW_DIR			"/gedit-2/window"
 #define GPM_WINDOW_STATE		GPM_WINDOW_DIR "/state"
@@ -156,9 +159,9 @@
 #define GPM_DEFAULT_PRINT_WRAP_MODE	"GTK_WRAP_WORD"
 #define GPM_DEFAULT_PRINT_LINE_NUMBERS	0 /* No numbers */
 
-#define GPM_DEFAULT_PRINT_FONT_BODY 	(const gchar*) "Monospace Regular 9"
-#define GPM_DEFAULT_PRINT_FONT_HEADER	(const gchar*) "Sans Regular 11"
-#define GPM_DEFAULT_PRINT_FONT_NUMBERS	(const gchar*) "Sans Regular 8"
+#define GPM_DEFAULT_PRINT_FONT_BODY_PANGO 	(const gchar*) "Monospace 9"
+#define GPM_DEFAULT_PRINT_FONT_HEADER_PANGO	(const gchar*) "Sans 11"
+#define GPM_DEFAULT_PRINT_FONT_NUMBERS_PANGO	(const gchar*) "Sans 8"
 
 #define GPM_DEFAULT_MAX_RECENTS		5
 
Index: gedit/gedit-print.c
===================================================================
RCS file: /cvs/gnome/gedit/gedit/gedit-print.c,v
retrieving revision 1.37
diff -u -p -r1.37 gedit-print.c
--- gedit/gedit-print.c	20 Oct 2003 23:17:11 -0000	1.37
+++ gedit/gedit-print.c	7 Jun 2004 15:32:51 -0000
@@ -510,6 +510,10 @@ gedit_print_job_info_new (GeditDocument*
 	gchar *print_font_header;
 	gchar *print_font_numbers;
 	
+	PangoFontDescription *print_font_body_desc;
+	PangoFontDescription *print_font_header_desc;
+	PangoFontDescription *print_font_numbers_desc;
+	
 	gedit_debug (DEBUG_PRINT, "");
 	
 	g_return_val_if_fail (doc != NULL, NULL);
@@ -574,9 +578,21 @@ gedit_print_job_info_new (GeditDocument*
 	gtk_source_print_job_set_numbers_font (pjob, print_font_numbers);
 	gtk_source_print_job_set_header_footer_font (pjob, print_font_header);
 
+	print_font_body_desc = pango_font_description_from_string (print_font_body);
+	print_font_header_desc = pango_font_description_from_string (print_font_header);
+	print_font_numbers_desc = pango_font_description_from_string (print_font_numbers);
+
+	gtk_source_print_job_set_font_desc (pjob, print_font_body_desc);
+	gtk_source_print_job_set_numbers_font_desc (pjob, print_font_numbers_desc);
+	gtk_source_print_job_set_header_footer_font_desc (pjob, print_font_header_desc);
+
 	g_free (print_font_body);
 	g_free (print_font_header);
 	g_free (print_font_numbers);
+
+	pango_font_description_free (print_font_body_desc);
+	pango_font_description_free (print_font_header_desc);
+	pango_font_description_free (print_font_numbers_desc);
 
 	pji = g_new0 (GeditPrintJobInfo, 1);
 
Index: gedit/dialogs/gedit-page-setup-dialog.c
===================================================================
RCS file: /cvs/gnome/gedit/gedit/dialogs/gedit-page-setup-dialog.c,v
retrieving revision 1.4
diff -u -p -r1.4 gedit-page-setup-dialog.c
--- gedit/dialogs/gedit-page-setup-dialog.c	2 Jan 2004 13:31:44 -0000	1.4
+++ gedit/dialogs/gedit-page-setup-dialog.c	7 Jun 2004 15:32:51 -0000
@@ -43,7 +43,6 @@
 #include "gedit2.h"
 #include "gedit-utils.h"
 #include "gedit-debug.h"
-#include "gnome-print-font-picker.h"
 
 typedef struct _GeditPageSetupDialog GeditPageSetupDialog;
 
@@ -67,9 +66,9 @@ struct _GeditPageSetupDialog {
 	GtkWidget *headers_font_label;
 	GtkWidget *numbers_font_label;
 
-	GtkWidget *body_fontpicker;
-	GtkWidget *headers_fontpicker;
-	GtkWidget *numbers_fontpicker;
+	GtkWidget *body_fontbutton;
+	GtkWidget *headers_fontbutton;
+	GtkWidget *numbers_fontbutton;
 
 	GtkWidget *restore_button;
 };
@@ -295,64 +294,19 @@ setup_general_page (GeditPageSetupDialog
 	
 }
 
-#define DEFAULT_FONT_SIZE 10
-
-/* TODO: monitor changes of the font size - Paolo */
-
-static gint 
-get_desktop_default_font_size ()
-{
-	GConfClient *gconf_client = NULL;
-	gint res;
-	gchar *font;
-	
-	PangoFontDescription *desc;
-
-	gedit_debug (DEBUG_PRINT, "");
-
-	gconf_client = gconf_client_get_default ();
-	if (gconf_client == NULL)
-	{
-		return DEFAULT_FONT_SIZE;
-	}
-
-	font = gconf_client_get_string (gconf_client,
-				   	"/desktop/gnome/interface/font_name",
-				   	NULL);
-	if (font == NULL)
-		return DEFAULT_FONT_SIZE;
-	
-	gedit_debug (DEBUG_PRINT, "Font: %s", font);
-
-	desc = pango_font_description_from_string (font);
-
-	g_free (font);
-	g_return_val_if_fail (desc != NULL, DEFAULT_FONT_SIZE);
-
-	res = pango_font_description_get_size (desc) / PANGO_SCALE;
-
-	pango_font_description_free (desc);
-
-	g_object_unref (gconf_client);
-
-	gedit_debug (DEBUG_PRINT, "Size: %d", res);
-
-	return res;
-}
-
 static void
 restore_button_clicked (GtkButton *button, GeditPageSetupDialog *dlg)
 {
-	g_return_if_fail (dlg->body_fontpicker != NULL);
-	g_return_if_fail (dlg->headers_fontpicker != NULL);
-	g_return_if_fail (dlg->numbers_fontpicker != NULL);
+	g_return_if_fail (dlg->body_fontbutton != NULL);
+	g_return_if_fail (dlg->headers_fontbutton != NULL);
+	g_return_if_fail (dlg->numbers_fontbutton != NULL);
 
 	if (gedit_prefs_manager_print_font_body_can_set ())
 	{
 		const gchar* font = gedit_prefs_manager_get_default_print_font_body ();
 
-		gnome_print_font_picker_set_font_name (
-				GNOME_PRINT_FONT_PICKER (dlg->body_fontpicker),
+		gtk_font_button_set_font_name (
+				GTK_FONT_BUTTON (dlg->body_fontbutton),
 				font);
 		
 		gedit_prefs_manager_set_print_font_body (font);
@@ -362,8 +316,8 @@ restore_button_clicked (GtkButton *butto
 	{
 		const gchar* font = gedit_prefs_manager_get_default_print_font_header ();
 
-		gnome_print_font_picker_set_font_name (
-				GNOME_PRINT_FONT_PICKER (dlg->headers_fontpicker),
+		gtk_font_button_set_font_name (
+				GTK_FONT_BUTTON (dlg->headers_fontbutton),
 				font);
 		
 		gedit_prefs_manager_set_print_font_header (font);
@@ -373,8 +327,8 @@ restore_button_clicked (GtkButton *butto
 	{
 		const gchar* font = gedit_prefs_manager_get_default_print_font_numbers ();
 		
-		gnome_print_font_picker_set_font_name (
-				GNOME_PRINT_FONT_PICKER (dlg->numbers_fontpicker),
+		gtk_font_button_set_font_name (
+				GTK_FONT_BUTTON (dlg->numbers_fontbutton),
 				font);
 		
 		gedit_prefs_manager_set_print_font_numbers (font);
@@ -382,39 +336,50 @@ restore_button_clicked (GtkButton *butto
 }
 
 static void
-body_font_picker_font_set (GnomePrintFontPicker *gfp, const gchar *font_name, 
-		GeditPageSetupDialog *dlg)
+body_font_button_font_set (GtkFontButton *fb, 
+			   GeditPageSetupDialog *dlg)
 {
 	gedit_debug (DEBUG_PRINT, "");
 
-	g_return_if_fail (gfp == GNOME_PRINT_FONT_PICKER (dlg->body_fontpicker));
-	g_return_if_fail (font_name != NULL);
+	g_return_if_fail (fb == GTK_FONT_BUTTON (dlg->body_fontbutton));
 
-	gedit_prefs_manager_set_print_font_body (font_name);
+	gedit_prefs_manager_set_print_font_body (gtk_font_button_get_font_name (fb));
 }
 
 static void
-headers_font_picker_font_set (GnomePrintFontPicker *gfp, const gchar *font_name, 
-		GeditPageSetupDialog *dlg)
+headers_font_button_font_set (GtkFontButton *fb, 
+			      GeditPageSetupDialog *dlg)
 {
 	gedit_debug (DEBUG_PRINT, "");
 
-	g_return_if_fail (gfp == GNOME_PRINT_FONT_PICKER (dlg->headers_fontpicker));
-	g_return_if_fail (font_name != NULL);
+	g_return_if_fail (fb == GTK_FONT_BUTTON (dlg->headers_fontbutton));
 
-	gedit_prefs_manager_set_print_font_header (font_name);
+	gedit_prefs_manager_set_print_font_header (gtk_font_button_get_font_name (fb));
 }
 
 static void
-numbers_font_picker_font_set (GnomePrintFontPicker *gfp, const gchar *font_name, 
-		GeditPageSetupDialog *dlg)
+numbers_font_button_font_set (GtkFontButton *fb,
+			      GeditPageSetupDialog *dlg)
 {
 	gedit_debug (DEBUG_PRINT, "");
 
-	g_return_if_fail (gfp == GNOME_PRINT_FONT_PICKER (dlg->numbers_fontpicker));
-	g_return_if_fail (font_name != NULL);
+	g_return_if_fail (fb == GTK_FONT_BUTTON (dlg->numbers_fontbutton));
+
+	gedit_prefs_manager_set_print_font_numbers (gtk_font_button_get_font_name (fb));
+}
+
+static GtkWidget *
+font_button_new (void)
+{
+	GtkWidget *button;
+
+	button = gtk_font_button_new ();
 
-	gedit_prefs_manager_set_print_font_numbers (font_name);
+	gtk_font_button_set_use_font (GTK_FONT_BUTTON (button), TRUE);
+	gtk_font_button_set_show_style (GTK_FONT_BUTTON (button), FALSE);
+	gtk_font_button_set_show_size (GTK_FONT_BUTTON (button), TRUE);
+
+	return button;
 }
 
 static void
@@ -425,87 +390,53 @@ setup_font_page (GeditPageSetupDialog *d
 
 	gedit_debug (DEBUG_PRINT, "");
 
-	/* Body font picker */
-	dlg->body_fontpicker = gnome_print_font_picker_new ();
-
-	gnome_print_font_picker_set_mode (
-			GNOME_PRINT_FONT_PICKER (dlg->body_fontpicker), 
-			GNOME_PRINT_FONT_PICKER_MODE_FONT_INFO);
-	
-	gnome_print_font_picker_fi_set_show_size (
-			GNOME_PRINT_FONT_PICKER (dlg->body_fontpicker), TRUE);
-
-	gnome_print_font_picker_fi_set_use_font_in_label (
-			GNOME_PRINT_FONT_PICKER (dlg->body_fontpicker), 
-			TRUE, 
-			get_desktop_default_font_size ());
+	/* Body font button */
+	dlg->body_fontbutton = font_button_new ();
 
 	gtk_table_attach_defaults (GTK_TABLE (dlg->fonts_table), 
-			dlg->body_fontpicker, 1, 2, 0, 1);
+			dlg->body_fontbutton, 1, 2, 0, 1);
 	
-	/* Headers font picker */
-	dlg->headers_fontpicker = gnome_print_font_picker_new ();
-	gnome_print_font_picker_set_mode (
-			GNOME_PRINT_FONT_PICKER (dlg->headers_fontpicker), 
-			GNOME_PRINT_FONT_PICKER_MODE_FONT_INFO);
-	
-	gnome_print_font_picker_fi_set_show_size (
-			GNOME_PRINT_FONT_PICKER (dlg->headers_fontpicker), TRUE);
-	
-	gnome_print_font_picker_fi_set_use_font_in_label (
-			GNOME_PRINT_FONT_PICKER (dlg->headers_fontpicker), 
-			TRUE, 
-			get_desktop_default_font_size ());
+	/* Headers font button */
+	dlg->headers_fontbutton = font_button_new ();
 
 	gtk_table_attach_defaults (GTK_TABLE (dlg->fonts_table), 
-			dlg->headers_fontpicker, 1, 2, 2, 3);
+			dlg->headers_fontbutton, 1, 2, 2, 3);
 
-	/* Numbers font picker */
-	dlg->numbers_fontpicker = gnome_print_font_picker_new ();
-	gnome_print_font_picker_set_mode (
-			GNOME_PRINT_FONT_PICKER (dlg->numbers_fontpicker), 
-			GNOME_PRINT_FONT_PICKER_MODE_FONT_INFO);
-	
-	gnome_print_font_picker_fi_set_show_size (
-			GNOME_PRINT_FONT_PICKER (dlg->numbers_fontpicker), TRUE);
-	
-	gnome_print_font_picker_fi_set_use_font_in_label (
-			GNOME_PRINT_FONT_PICKER (dlg->numbers_fontpicker), 
-			TRUE, 
-			get_desktop_default_font_size ());
+	/* Numbers font button */
+	dlg->numbers_fontbutton = font_button_new ();
 
 	gtk_table_attach_defaults (GTK_TABLE (dlg->fonts_table), 
-			dlg->numbers_fontpicker, 1, 2, 1, 2);
+			dlg->numbers_fontbutton, 1, 2, 1, 2);
 
 	gtk_label_set_mnemonic_widget (GTK_LABEL (dlg->body_font_label), 
-				       dlg->body_fontpicker);
+				       dlg->body_fontbutton);
 	
 	gtk_label_set_mnemonic_widget (GTK_LABEL (dlg->headers_font_label), 
-				       dlg->headers_fontpicker);
+				       dlg->headers_fontbutton);
 
 	gtk_label_set_mnemonic_widget (GTK_LABEL (dlg->numbers_font_label), 
-				       dlg->numbers_fontpicker);
+				       dlg->numbers_fontbutton);
 
-	gedit_utils_set_atk_name_description (dlg->body_fontpicker, _("Body font picker"),
+	gedit_utils_set_atk_name_description (dlg->body_fontbutton, _("Body font picker"),
 		_("Push this button to select the font to be used to print the body of the document"));
-	gedit_utils_set_atk_name_description (dlg->headers_fontpicker, _("Page headers font picker"),
+	gedit_utils_set_atk_name_description (dlg->headers_fontbutton, _("Page headers font picker"),
 		_("Push this button to select the font to be used to print the page headers"));
-	gedit_utils_set_atk_name_description (dlg->numbers_fontpicker, _("Line numbers font picker"),
+	gedit_utils_set_atk_name_description (dlg->numbers_fontbutton, _("Line numbers font picker"),
 		_("Push this button to select the font to be used to print line numbers"));
 
-	gedit_utils_set_atk_relation (dlg->body_fontpicker, dlg->body_font_label, 
+	gedit_utils_set_atk_relation (dlg->body_fontbutton, dlg->body_font_label, 
 							ATK_RELATION_LABELLED_BY);
-	gedit_utils_set_atk_relation (dlg->headers_fontpicker, dlg->headers_font_label, 
+	gedit_utils_set_atk_relation (dlg->headers_fontbutton, dlg->headers_font_label, 
 							ATK_RELATION_LABELLED_BY);
-	gedit_utils_set_atk_relation (dlg->numbers_fontpicker, dlg->numbers_font_label, 
+	gedit_utils_set_atk_relation (dlg->numbers_fontbutton, dlg->numbers_font_label, 
 							ATK_RELATION_LABELLED_BY);
 
 	/* Set initial values */
 	font = gedit_prefs_manager_get_print_font_body ();
-	g_return_if_fail (font);;
+	g_return_if_fail (font);
 
-	gnome_print_font_picker_set_font_name (
-			GNOME_PRINT_FONT_PICKER (dlg->body_fontpicker),
+	gtk_font_button_set_font_name (
+			GTK_FONT_BUTTON (dlg->body_fontbutton),
 			font);
 	
 	g_free (font);
@@ -513,8 +444,8 @@ setup_font_page (GeditPageSetupDialog *d
 	font = gedit_prefs_manager_get_print_font_header ();
 	g_return_if_fail (font);
 
-	gnome_print_font_picker_set_font_name (
-			GNOME_PRINT_FONT_PICKER (dlg->headers_fontpicker),
+	gtk_font_button_set_font_name (
+			GTK_FONT_BUTTON (dlg->headers_fontbutton),
 			font);
 
 	g_free (font);
@@ -522,23 +453,23 @@ setup_font_page (GeditPageSetupDialog *d
 	font = gedit_prefs_manager_get_print_font_numbers ();
 	g_return_if_fail (font);
 	
-	gnome_print_font_picker_set_font_name (
-			GNOME_PRINT_FONT_PICKER (dlg->numbers_fontpicker),
+	gtk_font_button_set_font_name (
+			GTK_FONT_BUTTON (dlg->numbers_fontbutton),
 			font);
 
 	g_free (font);
 
 	/* Set widgets sensitivity */
 	can_set = gedit_prefs_manager_print_font_body_can_set ();
-	gtk_widget_set_sensitive (dlg->body_fontpicker, can_set);
+	gtk_widget_set_sensitive (dlg->body_fontbutton, can_set);
 	gtk_widget_set_sensitive (dlg->body_font_label, can_set);
 		  
 	can_set = gedit_prefs_manager_print_font_header_can_set ();
-	gtk_widget_set_sensitive (dlg->headers_fontpicker, can_set);
+	gtk_widget_set_sensitive (dlg->headers_fontbutton, can_set);
 	gtk_widget_set_sensitive (dlg->headers_font_label, can_set);
 
 	can_set = gedit_prefs_manager_print_font_numbers_can_set ();
-	gtk_widget_set_sensitive (dlg->numbers_fontpicker, can_set);
+	gtk_widget_set_sensitive (dlg->numbers_fontbutton, can_set);
 	gtk_widget_set_sensitive (dlg->numbers_font_label, can_set);
 	
 	/* Connect signals */
@@ -546,16 +477,16 @@ setup_font_page (GeditPageSetupDialog *d
 			  G_CALLBACK (restore_button_clicked),
 			  dlg);
 
-	g_signal_connect (G_OBJECT (dlg->body_fontpicker), "font_set", 
-			  G_CALLBACK (body_font_picker_font_set), 
+	g_signal_connect (G_OBJECT (dlg->body_fontbutton), "font_set", 
+			  G_CALLBACK (body_font_button_font_set), 
 			  dlg);
 
-	g_signal_connect (G_OBJECT (dlg->headers_fontpicker), "font_set", 
-			  G_CALLBACK (headers_font_picker_font_set), 
+	g_signal_connect (G_OBJECT (dlg->headers_fontbutton), "font_set", 
+			  G_CALLBACK (headers_font_button_font_set), 
 			  dlg);
 
-	g_signal_connect (G_OBJECT (dlg->numbers_fontpicker), "font_set", 
-			  G_CALLBACK (numbers_font_picker_font_set), 
+	g_signal_connect (G_OBJECT (dlg->numbers_fontbutton), "font_set", 
+			  G_CALLBACK (numbers_font_button_font_set), 
 			  dlg);
 }
 
