rpms/evolution/devel evolution-2.3.5.1-fix-150458.patch, NONE, 1.1 .cvsignore, 1.31, 1.32 evolution.spec, 1.77, 1.78 sources, 1.31, 1.32

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Jul 29 03:16:17 UTC 2005


Author: dmalcolm

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

Modified Files:
	.cvsignore evolution.spec sources 
Added Files:
	evolution-2.3.5.1-fix-150458.patch 
Log Message:
* Thu Jul 28 2005 David Malcolm <dmalcolm at redhat.com> - 2.3.6-1
- 2.3.6
- Bump evolution-data-server requirement to 1.3.6 (needed for 
  CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING)
- Removed libgal2[-devel] dependencies; the code has been moved into the 
  evolution tarball

* Thu Jul 28 2005 David Malcolm <dmalcolm at redhat.com> - 2.3.5.1-2
- added experimental patch to port ETable printing to use Pango (#150458)



evolution-2.3.5.1-fix-150458.patch:
 e-cell-text.c             |  100 ++++++++++++++++++++++++++--------------------
 e-table-group-container.c |   31 +++++++++++---
 2 files changed, 81 insertions(+), 50 deletions(-)

--- NEW FILE evolution-2.3.5.1-fix-150458.patch ---
--- gal-2.5.3/gal/e-table/e-table-group-container.c.fix-150458	2005-04-29 10:16:03.000000000 -0400
+++ gal-2.5.3/gal/e-table/e-table-group-container.c	2005-07-28 00:52:56.000000000 -0400
@@ -27,6 +27,7 @@
 #include <gtk/gtk.h>
 #include <libgnome/libgnome.h>
 #include <libgnomecanvas/gnome-canvas-rect-ellipse.h>
+#include <libgnomeprint/gnome-print-pango.h>
 
 #include "gal/e-text/e-text.h"
 #include "gal/util/e-i18n.h"
@@ -1159,7 +1160,18 @@
 	GList *child;
 	EPrintable *child_printable;
 	gchar *string;
-	GnomeFont *font = gnome_font_find ("Helvetica", TEXT_HEIGHT);
+
+	PangoLayout *pl;
+
+	PangoFontDescription *font_desc = pango_font_description_from_string ("Helvetica");
+	#define MAGIC_SCALE_FACTOR (0.86)
+	pango_font_description_set_size (font_desc,
+					 TEXT_HEIGHT * MAGIC_SCALE_FACTOR * PANGO_SCALE );
+
+	pl = gnome_print_pango_create_layout (context);
+	pango_layout_set_font_description (pl, font_desc);
+	pango_layout_set_width (pl, -1); /* ensure no line-wrapping occurs */
+	pango_layout_set_indent (pl, 0);
 
 	child_printable = groupcontext->child_printable;
 	child = groupcontext->child;
@@ -1223,9 +1235,8 @@
 		if (gnome_print_clip(context) == -1)
 			/* FIXME */;
 
-		if (gnome_print_moveto(context, 2, yd - (TEXT_AREA_HEIGHT + gnome_font_get_ascender(font) - gnome_font_get_descender(font)) / 2) == -1)
-			/* FIXME */;
-		if (gnome_print_setfont(context, font))
+		/* FIXME: get correct Y coordinate: */
+		if (gnome_print_moveto(context, 2, yd) == -1)
 			/* FIXME */;
 		if (groupcontext->etgc->ecol->text)
 			string = g_strdup_printf ("%s : %s (%d item%s)",
@@ -1238,9 +1249,13 @@
 						  child_node->string,
 						  (gint) child_node->count,
 						  child_node->count == 1 ? "" : "s");
-		if (gnome_print_show(context, string))
-			/* FIXME */;
+
+		pango_layout_set_text (pl, string, -1);
+
 		g_free(string);
+
+		gnome_print_pango_layout (context, pl);
+
 		if (gnome_print_grestore(context) == -1)
 			/* FIXME */;
 
@@ -1294,7 +1309,9 @@
 		g_object_unref (groupcontext->child_printable);
 	groupcontext->child_printable = child_printable;
 	groupcontext->child = child;
-			
+
+	pango_font_description_free (font_desc);
+	g_object_unref (G_OBJECT (pl));			
 }
 
 static gboolean
--- gal-2.5.3/gal/e-table/e-cell-text.c.fix-150458	2005-07-28 00:51:11.000000000 -0400
+++ gal-2.5.3/gal/e-table/e-cell-text.c	2005-07-28 00:52:32.000000000 -0400
@@ -45,6 +45,7 @@
 #include <gtk/gtk.h>
 #include <libgnomecanvas/gnome-canvas.h>
 #include <libgnomecanvas/gnome-canvas-rect-ellipse.h>
+#include <libgnomeprint/gnome-print-pango.h>
 
 #include "gal/a11y/e-table/gal-a11y-e-cell-registry.h"
 #include "gal/a11y/e-table/gal-a11y-e-cell-text.h"
@@ -1288,23 +1289,18 @@
 
 #define FONT_NAME "Sans Regular"
 
-static GnomeFont *
+static PangoFontDescription *
 get_font_for_size (double h)
 {
-	GnomeFontFace *face;
-	GnomeFont *font;
-	double asc, desc, size;
+	PangoFontDescription *font_desc;
 
-	face = gnome_font_face_find (FONT_NAME);
+	font_desc = pango_font_description_from_string (FONT_NAME);
 
-	asc = gnome_font_face_get_ascender (face);
-	desc = abs (gnome_font_face_get_descender (face));
-	size = h * 1000 / (asc + desc);
-
-	font = gnome_font_find_closest (FONT_NAME, size);
-
-	g_object_unref (face);
-	return font;
+	#define MAGIC_SCALE_FACTOR (0.86)
+	pango_font_description_set_size (font_desc,
+					 h * MAGIC_SCALE_FACTOR * PANGO_SCALE );
+ 
+	return font_desc;
 }
 
 static void
@@ -1312,13 +1308,54 @@
 	   int model_col, int view_col, int row,
 	   double width, double height)
 {
-	GnomeFont *font = get_font_for_size (16);
+	PangoFontDescription *font_desc = get_font_for_size (16);
+	PangoLayout *pl;
 	char *string;
 	ECellText *ect = E_CELL_TEXT(ecell_view->ecell);
-	double ty, ly, text_width;
+	double ty;
 	gboolean strikeout, underline;
 
+
 	string = e_cell_text_get_text(ect, ecell_view->e_table_model, model_col, row);
+
+	strikeout = ect->strikeout_column >= 0 && row >= 0 &&
+		e_table_model_value_at (ecell_view->e_table_model, ect->strikeout_column, row);
+	underline = ect->underline_column >= 0 && row >= 0 &&
+		e_table_model_value_at(ecell_view->e_table_model, ect->underline_column, row);
+
+
+	/* Set up PangoLayout: */
+	pl = gnome_print_pango_create_layout (context);
+	pango_layout_set_font_description (pl, font_desc);
+	pango_layout_set_text (pl, string, -1);
+	pango_layout_set_width (pl, -1); /* ensure no line-wrapping occurs */
+	pango_layout_set_indent (pl, 0);
+
+	if (strikeout || underline) {
+		PangoAttrList *attr_list;
+
+		attr_list = pango_attr_list_new ();
+
+		if (underline) {
+			PangoAttribute* attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE);
+			attr->start_index = 0;
+			attr->end_index = strlen (string);
+			pango_attr_list_insert (attr_list,
+						attr);			
+		}
+
+		if (strikeout) {
+			PangoAttribute* attr = pango_attr_strikethrough_new (TRUE);
+			attr->start_index = 0;
+			attr->end_index = strlen (string);
+			pango_attr_list_insert (attr_list,
+						attr);			
+		}
+		pango_layout_set_attributes (pl,
+                                             attr_list);		
+		pango_attr_list_unref (attr_list);
+	}
+
 	gnome_print_gsave(context);
 	if (gnome_print_moveto(context, 2, 2) == -1)
 				/* FIXME */;
@@ -1333,38 +1370,15 @@
 	if (gnome_print_clip(context) == -1)
 				/* FIXME */;
 
-	ty = (height - gnome_font_get_ascender(font) - gnome_font_get_descender(font)) / 2;
-	text_width = gnome_font_get_width_utf8 (font, string);
-
-	strikeout = ect->strikeout_column >= 0 && row >= 0 &&
-		e_table_model_value_at (ecell_view->e_table_model, ect->strikeout_column, row);
-	underline = ect->underline_column >= 0 && row >= 0 &&
-		e_table_model_value_at(ecell_view->e_table_model, ect->underline_column, row);
-
-	if (underline) {
-		ly = ty + gnome_font_get_underline_position (font);
-		gnome_print_newpath (context);
-		gnome_print_moveto (context, 2, ly);
-		gnome_print_lineto (context, MIN (2 + text_width, width - 2), ly);
-		gnome_print_setlinewidth (context, gnome_font_get_underline_thickness (font));
-		gnome_print_stroke (context);
-	}
-
-	if (strikeout) {
-		ly = ty + (gnome_font_get_ascender (font)  - gnome_font_get_underline_thickness (font))/ 2.0;
-		gnome_print_newpath (context);
-		gnome_print_moveto (context, 2, ly);
-		gnome_print_lineto (context, MIN (2 + text_width, width - 2), ly);
-		gnome_print_setlinewidth (context, gnome_font_get_underline_thickness (font));
-		gnome_print_stroke (context);
-	}
+	/* ty = (height - gnome_font_get_ascender(font) - gnome_font_get_descender(font)) / 2; */
+	ty = 0; /* FIXME: get appropriate y coordinate */
 
 	gnome_print_moveto(context, 2, ty);
-	gnome_print_setfont(context, font);
-	gnome_print_show(context, string);
+	gnome_print_pango_layout (context, pl);
 	gnome_print_grestore(context);
 	e_cell_text_free_text(ect, string);
-	g_object_unref (font);
+	pango_font_description_free (font_desc);
+	g_object_unref (G_OBJECT (pl));
 }
 
 static gdouble


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/evolution/devel/.cvsignore,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- .cvsignore	26 Jul 2005 02:11:39 -0000	1.31
+++ .cvsignore	29 Jul 2005 03:16:14 -0000	1.32
@@ -1 +1 @@
-evolution-2.3.5.1.tar.bz2
+evolution-2.3.6.tar.bz2


Index: evolution.spec
===================================================================
RCS file: /cvs/dist/rpms/evolution/devel/evolution.spec,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- evolution.spec	26 Jul 2005 02:11:39 -0000	1.77
+++ evolution.spec	29 Jul 2005 03:16:14 -0000	1.78
@@ -1,10 +1,9 @@
 # no ppc64 mozilla
 ExcludeArch: ppc64
 
-%define gal_version 2:2.4.2
 %define gtkhtml_version 3.6.2
 %define soup_version 2.2.2
-%define eds_version 1.2.2
+%define eds_version 1.3.6
 %define use_mozilla_nss 1
 %define evo_major 2.4
 %define libbonoboui_version 2.4.2
@@ -27,7 +26,7 @@
 %define nntp_support 1
 
 Name: evolution
-Version: 2.3.5.1
+Version: 2.3.6
 Release: 1
 License: GPL
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
@@ -56,6 +55,9 @@
 # Move autosave file
 Patch107: evolution-2.2.2-move-autosave-file.patch
 
+# Fix for RH bug 150458:
+Patch108: evolution-2.3.5.1-fix-150458.patch
+
 # not accepted, but proposed on a few occasions.  fixes problems with
 # some cyrus servers
 #Patch200: evolution-1.4.5-imap-command-length.patch
@@ -82,7 +84,6 @@
 Requires: scrollkeeper >= 0.1.4
 Requires: ORBit2 >= 2.7.5
 Requires: libsoup >= %{soup_version}
-Requires: libgal2 >= %{gal_version}
 Requires: evolution-data-server >= %{eds_version}
 Requires: gnome-spell >= 1.0.2
 Requires: gtk2 >= 2.4.0
@@ -97,7 +98,6 @@
 Requires: gnome-vfs2 >= %{gnomevfs2_version}
 
 BuildRequires: gtkhtml3-devel >= %{gtkhtml_version}
-BuildRequires: libgal2-devel >= %{gal_version}
 BuildRequires: libsoup-devel >= %{soup_version}
 BuildRequires: evolution-data-server-devel >= %{eds_version}
 BuildRequires: libbonobo-devel >= 2.0
@@ -157,7 +157,6 @@
 Group: Development/Libraries
 Requires: %{name} = %{version}
 Requires: gtkhtml3-devel >= %{gtkhtml_version}
-Requires: libgal2-devel >= %{gal_version}
 Requires: libsoup-devel >= %{soup_version}
 
 %description devel
@@ -182,6 +181,9 @@
 
 %patch106 -p1 -b .commit-enter-on-calendar
 %patch107 -p1 -b .move-autosave-file
+cd widgets/table
+%patch108 -p3 -b .fix-150458
+cd ../..
 
 #patch200 -p1 -b .commandlength
 
@@ -347,6 +349,16 @@
 %{_libdir}/evolution/%{evo_major}/*.so
 
 %changelog
+* Thu Jul 28 2005 David Malcolm <dmalcolm at redhat.com> - 2.3.6-1
+- 2.3.6
+- Bump evolution-data-server requirement to 1.3.6 (needed for 
+  CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING)
+- Removed libgal2[-devel] dependencies; the code has been moved into the 
+  evolution tarball
+
+* Thu Jul 28 2005 David Malcolm <dmalcolm at redhat.com> - 2.3.5.1-2
+- added experimental patch to port ETable printing to use Pango (#150458)
+
 * Mon Jul 25 2005 David Malcolm <dmalcolm at redhat.com> - 2.3.5.1-1
 - 2.3.5.1
 - Update evo_major from 2.2 to 2.4


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/evolution/devel/sources,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- sources	26 Jul 2005 02:11:39 -0000	1.31
+++ sources	29 Jul 2005 03:16:15 -0000	1.32
@@ -1 +1 @@
-2271c695677a8bf8c3c96ec883a05d12  evolution-2.3.5.1.tar.bz2
+54580913d34a05425b17eacb6dcc15ae  evolution-2.3.6.tar.bz2




More information about the fedora-cvs-commits mailing list