rpms/gtkhtml38/EL-5 Makefile, 1.2, 1.3 gtkhtml-3.10.0-im-too-late.patch, 1.2, 1.3 gtkhtml-3.11.92-chain-finalize.patch, 1.2, 1.3 gtkhtml-3.3.0-crash.patch, 1.2, 1.3 gtkhtml-3.3.2-imcommit.patch, 1.2, 1.3 gtkhtml-fix-indic-navigation-129212.patch, 1.2, 1.3 gtkhtml38.spec, 1.8, 1.9 print-font-gtkhtml3.8-fix.patch, 1.2, 1.3 sources, 1.3, 1.4 dead.package, 1.1, NONE

Bill Nottingham (notting) fedora-extras-commits at redhat.com
Mon Jun 9 13:53:28 UTC 2008


Author: notting

Update of /cvs/extras/rpms/gtkhtml38/EL-5
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv30689

Added Files:
	Makefile gtkhtml-3.10.0-im-too-late.patch 
	gtkhtml-3.11.92-chain-finalize.patch gtkhtml-3.3.0-crash.patch 
	gtkhtml-3.3.2-imcommit.patch 
	gtkhtml-fix-indic-navigation-129212.patch gtkhtml38.spec 
	print-font-gtkhtml3.8-fix.patch sources 
Removed Files:
	dead.package 
Log Message:
sync from last release



Index: Makefile
===================================================================
RCS file: Makefile
diff -N Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Makefile	9 Jun 2008 13:52:45 -0000	1.3
@@ -0,0 +1,21 @@
+# Makefile for source rpm: gtkhtml38
+# $Id$
+NAME := gtkhtml38
+SPECFILE = $(firstword $(wildcard *.spec))
+
+define find-makefile-common
+for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
+endef
+
+MAKEFILE_COMMON := $(shell $(find-makefile-common))
+
+ifeq ($(MAKEFILE_COMMON),)
+# attept a checkout
+define checkout-makefile-common
+test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
+endef
+
+MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
+endif
+
+include $(MAKEFILE_COMMON)

gtkhtml-3.10.0-im-too-late.patch:

Index: gtkhtml-3.10.0-im-too-late.patch
===================================================================
RCS file: gtkhtml-3.10.0-im-too-late.patch
diff -N gtkhtml-3.10.0-im-too-late.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gtkhtml-3.10.0-im-too-late.patch	9 Jun 2008 13:52:45 -0000	1.3
@@ -0,0 +1,18 @@
+--- gtkhtml-3.10.0/src/gtkhtml.c.fix	2006-04-07 08:54:58.000000000 -0700
++++ gtkhtml-3.10.0/src/gtkhtml.c	2006-04-07 08:55:54.000000000 -0700
+@@ -3181,10 +3181,14 @@
+ 	PangoAttrList *attrs;
+ 	gchar *preedit_string;
+ 	gint cursor_pos, initial_position;
+-	gboolean state = html->priv->im_block_reset;
++	gboolean state;
+ 	gboolean pop_selection = FALSE;
+ 	gint deleted = 0;
+ 
++	g_return_if_fail (html->priv != NULL);
++
++	state = html->priv->im_block_reset;
++
+ 	D_IM (printf ("IM preedit changed cb [begin] cursor %d(%p) mark %d(%p) active: %d\n",
+ 		      html->engine->cursor ? html->engine->cursor->position : 0, html->engine->cursor,
+ 		      html->engine->mark ? html->engine->mark->position : 0, html->engine->mark,

gtkhtml-3.11.92-chain-finalize.patch:

Index: gtkhtml-3.11.92-chain-finalize.patch
===================================================================
RCS file: gtkhtml-3.11.92-chain-finalize.patch
diff -N gtkhtml-3.11.92-chain-finalize.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gtkhtml-3.11.92-chain-finalize.patch	9 Jun 2008 13:52:45 -0000	1.3
@@ -0,0 +1,214 @@
+--- gtkhtml-3.11.92/a11y/table.c.chain-finalize	2004-12-29 06:23:53.000000000 -0500
++++ gtkhtml-3.11.92/a11y/table.c	2006-08-29 12:22:01.000000000 -0400
+@@ -102,11 +102,6 @@
+ }
+ 
+ static void
+-html_a11y_table_finalize (GObject *obj)
+-{
+-}
+-
+-static void
+ html_a11y_table_initialize (AtkObject *obj, gpointer data)
+ {
+ 	/* printf ("html_a11y_table_initialize\n"); */
+@@ -118,13 +113,11 @@
+ static void
+ html_a11y_table_class_init (HTMLA11YTableClass *klass)
+ {
+-	GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ 	AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+ 
+ 	parent_class = g_type_class_peek_parent (klass);
+ 
+ 	atk_class->initialize = html_a11y_table_initialize;
+-	gobject_class->finalize = html_a11y_table_finalize;
+ }
+ 
+ static void
+--- gtkhtml-3.11.92/a11y/cell.c.chain-finalize	2002-11-01 10:34:27.000000000 -0500
++++ gtkhtml-3.11.92/a11y/cell.c	2006-08-29 12:22:01.000000000 -0400
+@@ -60,11 +60,6 @@
+ }
+ 
+ static void
+-html_a11y_cell_finalize (GObject *obj)
+-{
+-}
+-
+-static void
+ html_a11y_cell_initialize (AtkObject *obj, gpointer data)
+ {
+ 	/* printf ("html_a11y_cell_initialize\n"); */
+@@ -76,13 +71,11 @@
+ static void
+ html_a11y_cell_class_init (HTMLA11YCellClass *klass)
+ {
+-	GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ 	AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+ 
+ 	parent_class = g_type_class_peek_parent (klass);
+ 
+ 	atk_class->initialize = html_a11y_cell_initialize;
+-	gobject_class->finalize = html_a11y_cell_finalize;
+ }
+ 
+ static void
+--- gtkhtml-3.11.92/a11y/paragraph.c.chain-finalize	2002-11-01 10:34:27.000000000 -0500
++++ gtkhtml-3.11.92/a11y/paragraph.c	2006-08-29 12:22:01.000000000 -0400
+@@ -55,11 +55,6 @@
+ }
+ 
+ static void
+-html_a11y_paragraph_finalize (GObject *obj)
+-{
+-}
+-
+-static void
+ html_a11y_paragraph_initialize (AtkObject *obj, gpointer data)
+ {
+ 	/* printf ("html_a11y_paragraph_initialize\n"); */
+@@ -71,13 +66,11 @@
+ static void
+ html_a11y_paragraph_class_init (HTMLA11YParagraphClass *klass)
+ {
+-	GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ 	AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+ 
+ 	parent_class = g_type_class_peek_parent (klass);
+ 
+ 	atk_class->initialize = html_a11y_paragraph_initialize;
+-	gobject_class->finalize = html_a11y_paragraph_finalize;
+ }
+ 
+ static void
+--- gtkhtml-3.11.92/a11y/object.h.chain-finalize	2002-11-01 10:34:27.000000000 -0500
++++ gtkhtml-3.11.92/a11y/object.h	2006-08-29 12:34:24.000000000 -0400
+@@ -43,8 +43,6 @@
+ struct _GtkHTMLA11Y
+ {
+ 	GtkAccessible parent;
+-
+-	AtkObject *tree;
+ };
+ 
+ GType gtk_html_a11y_get_type (void);
+--- gtkhtml-3.11.92/a11y/object.c.chain-finalize	2006-05-09 04:54:05.000000000 -0400
++++ gtkhtml-3.11.92/a11y/object.c	2006-08-29 12:22:01.000000000 -0400
+@@ -153,11 +153,6 @@
+ }
+ 
+ static void
+-gtk_html_a11y_finalize (GObject *obj)
+-{
+-}
+-
+-static void
+ gtk_html_a11y_initialize (AtkObject *obj, gpointer data)
+ {
+ 	/* printf ("gtk_html_a11y_initialize\n"); */
+@@ -261,7 +256,6 @@
+ static void
+ gtk_html_a11y_class_init (GtkHTMLA11YClass *klass)
+ {
+-	GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ 	AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+ 
+ 	parent_class = g_type_class_peek_parent (klass);
+@@ -270,8 +264,6 @@
+ 	atk_class->get_n_children = gtk_html_a11y_get_n_children;
+ 	atk_class->ref_child = gtk_html_a11y_ref_child;
+ 	atk_class->get_name = gtk_html_a11y_get_name;
+-
+-	gobject_class->finalize = gtk_html_a11y_finalize;
+ }
+ 
+ static void
+--- gtkhtml-3.11.92/a11y/text.c.chain-finalize	2006-06-14 00:56:08.000000000 -0400
++++ gtkhtml-3.11.92/a11y/text.c	2006-08-29 12:22:01.000000000 -0400
+@@ -249,6 +249,14 @@
+ static void
+ html_a11y_text_finalize (GObject *obj)
+ {
++	HTMLA11YText *ato = HTML_A11Y_TEXT (obj);
++
++	if (ato->util != NULL) {
++		g_object_unref (ato->util);
++		ato->util = NULL;
++	}
++
++	G_OBJECT_CLASS (parent_class)->finalize (obj);
+ }
+ 
+ static void
+--- gtkhtml-3.11.92/a11y/html.c.chain-finalize	2006-02-28 14:49:22.000000000 -0500
++++ gtkhtml-3.11.92/a11y/html.c	2006-08-29 12:22:01.000000000 -0400
+@@ -98,11 +98,6 @@
+ }
+ 
+ static void
+-html_a11y_finalize (GObject *obj)
+-{
+-}
+-
+-static void
+ html_a11y_initialize (AtkObject *obj, gpointer data)
+ {
+ 	/* printf ("html_a11y_initialize\n"); */
+@@ -116,7 +111,6 @@
+ static void
+ html_a11y_class_init (HTMLA11YClass *klass)
+ {
+-	GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ 	AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+ 
+ 	parent_class = g_type_class_peek_parent (klass);
+@@ -127,8 +121,6 @@
+ 	atk_class->ref_state_set = html_a11y_ref_state_set;
+ 	atk_class->get_n_children = html_a11y_get_n_children;
+ 	atk_class->ref_child = html_a11y_ref_child;
+-
+-	gobject_class->finalize = html_a11y_finalize;
+ }
+ 
+ static void
+--- gtkhtml-3.11.92/a11y/image.c.chain-finalize	2005-05-17 10:47:56.000000000 -0400
++++ gtkhtml-3.11.92/a11y/image.c	2006-08-29 12:22:01.000000000 -0400
+@@ -86,11 +86,6 @@
+ }
+ 
+ static void
+-html_a11y_image_finalize (GObject *obj)
+-{
+-}
+-
+-static void
+ html_a11y_image_initialize (AtkObject *obj, gpointer data)
+ {
+ 	/* printf ("html_a11y_image_initialize\n"); */
+@@ -102,14 +97,12 @@
+ static void
+ html_a11y_image_class_init (HTMLA11YImageClass *klass)
+ {
+-	GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ 	AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+ 
+ 	parent_class = g_type_class_peek_parent (klass);
+ 
+ 	atk_class->get_name = html_a11y_image_get_name;
+ 	atk_class->initialize = html_a11y_image_initialize;
+-	gobject_class->finalize = html_a11y_image_finalize;
+ }
+ 
+ static void
+--- gtkhtml-3.11.92/src/htmltokenizer.c.chain-finalize	2004-05-13 11:07:33.000000000 -0400
++++ gtkhtml-3.11.92/src/htmltokenizer.c	2006-08-29 12:22:01.000000000 -0400
+@@ -259,6 +259,8 @@
+ 
+ 	g_free (t->priv);
+ 	t->priv = NULL;
++
++	G_OBJECT_CLASS (parent_class)->finalize (obj);
+ }
+ 
+ GtkType

gtkhtml-3.3.0-crash.patch:

Index: gtkhtml-3.3.0-crash.patch
===================================================================
RCS file: gtkhtml-3.3.0-crash.patch
diff -N gtkhtml-3.3.0-crash.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gtkhtml-3.3.0-crash.patch	9 Jun 2008 13:52:45 -0000	1.3
@@ -0,0 +1,11 @@
+--- gtkhtml-3.3.0/src/htmlclue.c.crash	2004-08-13 15:52:27.777093526 +0100
++++ gtkhtml-3.3.0/src/htmlclue.c	2004-08-13 15:52:29.494761807 +0100
+@@ -149,7 +149,7 @@
+ 		last = html_object_prev_not_slave (last);
+ 
+ 	g_assert (o->parent == self);
+-	g_assert (last->parent == self);
++	g_assert (!last || last->parent == self);
+ 
+ 	while (o) {
+ 		cnext = html_object_next_not_slave (o);

gtkhtml-3.3.2-imcommit.patch:

Index: gtkhtml-3.3.2-imcommit.patch
===================================================================
RCS file: gtkhtml-3.3.2-imcommit.patch
diff -N gtkhtml-3.3.2-imcommit.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gtkhtml-3.3.2-imcommit.patch	9 Jun 2008 13:52:45 -0000	1.3
@@ -0,0 +1,356 @@
+--- gtkhtml-3.3.2/src/gtkhtml-private.h.imcommit	2004-05-14 07:24:15.000000000 -0400
++++ gtkhtml-3.3.2/src/gtkhtml-private.h	2004-09-21 17:40:45.896197864 -0400
+@@ -57,6 +57,7 @@
+ 	gint im_pre_len;
+ 	gint im_pre_pos;
+ 	GtkHTMLFontStyle im_orig_style;
++	gboolean im_hide_cursor;
+ 	gboolean im_block_reset;
+ 
+ 	HTMLObject *dnd_object;
+--- gtkhtml-3.3.2/src/gtkhtml.c.imcommit	2004-09-16 18:17:19.000000000 -0400
++++ gtkhtml-3.3.2/src/gtkhtml.c	2004-09-21 17:40:46.036176584 -0400
+@@ -1009,7 +1009,7 @@
+ 
+ 	html_engine_unrealize (html->engine);
+ 
+-	gtk_im_context_set_client_window (html->priv->im_context, widget->window);
++	gtk_im_context_set_client_window (html->priv->im_context, NULL);
+ 
+ 	html_image_factory_stop_animations (html->engine->image_factory);
+ 
+@@ -2993,130 +2993,151 @@
+ 	}
+ }
+ 
++/* Removes the current preedit string if any; note that it doesn't reset
++ * im_pre_pos/im_pre_len, so it must be followed by a call to update_preedit
++ */
+ static void
+-gtk_html_im_commit_cb (GtkIMContext *context, const gchar *str, GtkHTML *html)
++remove_preedit (GtkHTML *html)
+ {
+-	gboolean state = html->priv->im_block_reset;
+-	gint pos;
+-
+-        if (html->priv->im_pre_len > 0) {
+-                D_IM (printf ("IM delete last preedit %d + %d\n", html->priv->im_pre_pos, html->priv->im_pre_len);)
+-                                                                                
+-                html_undo_freeze (html->engine->undo);
+-                html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos);
+-                html_engine_set_mark (html->engine);
+-                html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos + html->priv->im_pre_len);
+-                html_engine_delete (html->engine);
+-                html->priv->im_pre_len = 0;
+-                html_undo_thaw (html->engine->undo);
+-        }
+-
+-	pos = html->engine->cursor->position;
+-	if (html->engine->mark && html->engine->mark->position > pos)
+-		pos = html->engine->mark->position;
+-
+-	html->priv->im_block_reset = TRUE;
+-	D_IM (printf ("IM commit %s\n", str);)
+-	
+-	/* Move cusor before preedit pos and commit the string */
+-	html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos);
+-	html_engine_paste_text (html->engine, str, -1);
+-	/* Add preedit pos with number of str committed and move back */
+-	html->priv->im_pre_pos += g_utf8_strlen (str, -1);
+-	html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos);
+-
+-	html->priv->im_block_reset = state;
+-
+-	D_IM (printf ("IM commit pos: %d pre_pos: %d\n", pos, html->priv->im_pre_pos);)
+-
+-	if (html->priv->im_pre_pos >= pos)
+-		html->priv->im_pre_pos += html->engine->cursor->position - pos;
+-}
++	if (html->priv->im_pre_len > 0) {
++		gboolean state = html->priv->im_block_reset;
++		html->priv->im_block_reset = TRUE;
++		
++		html_undo_freeze (html->engine->undo);
++		html_engine_selection_push (html->engine);
+ 
+-static void
+-gtk_html_im_preedit_start_cb (GtkIMContext *context, GtkHTML *html)
+-{
+-	html->priv->im_pre_len = 0;
++		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos);
++		html_engine_set_mark (html->engine);
++		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos + html->priv->im_pre_len);
++		html_engine_delete (html->engine);
++		
++		html_engine_selection_pop (html->engine);
++		html_undo_thaw (html->engine->undo);
++		
++		html->priv->im_block_reset = state;
++	} else {
++		/* The current style can get confused while we are have a preedit string
++		 * in place, so we save the current style before we start preediting, and
++		 * restore it when the preedit string vanishes. (See bug #66204)
++		 */
++		html->priv->im_orig_style = html_engine_get_font_style (html->engine);
++	}
+ }
+ 
+ static void
+-gtk_html_im_preedit_changed_cb (GtkIMContext *context, GtkHTML *html)
++update_preedit (GtkHTML *html)
+ {
+ 	PangoAttrList *attrs;
+ 	gchar *preedit_string;
+-	gint cursor_pos, initial_position;
++	gint cursor_pos, preedit_position;
+ 	gboolean state = html->priv->im_block_reset;
+-	gboolean pop_selection = FALSE;
+-	gint deleted = 0;
++	gboolean had_selection = FALSE;
++	gboolean had_preedit = html->priv->im_pre_len > 0;
++	gboolean hide_cursor;
+ 
+-	D_IM (printf ("IM preedit changed cb [begin] cursor %d(%p) mark %d(%p) active: %d\n",
+-		      html->engine->cursor ? html->engine->cursor->position : 0, html->engine->cursor,
+-		      html->engine->mark ? html->engine->mark->position : 0, html->engine->mark,
+-		      html_engine_is_selection_active (html->engine));)
+ 	html->priv->im_block_reset = TRUE;
+ 
++	html_undo_freeze (html->engine->undo);
++
++	/* The handling of the combination of a selection and a preedit string
++	 * is imperfect because the selection runs from the 'mark' to the cursor,
++	 * so we can't display the selection plus a separate cursor.
++	 *
++	 * What we do is display the preedit text after the selection (even if
++	 * the cursor is at the beginning of the selection), and hide the cursor.
++	 * It is generally going to be less confusing not to display a cursor
++	 * at all then to display a cursor in the wrong location. Putting the
++	 * preedit text after the selection has the handy side effect that the
++	 * preedit string doesn't affect the selection bounds.
++	 */
+ 	if (html_engine_is_selection_active (html->engine)) {
+-		D_IM (printf ("IM push selection\n");)
+ 		html_engine_selection_push (html->engine);
++
++		preedit_position = MAX (html_cursor_get_position (html->engine->mark),
++					html_cursor_get_position (html->engine->cursor));
++		
++		/* We need to temporarily remove the selection, or when we paste in the preedit text,
++		 * it will replace the selection. 
++		 */
+ 		html_engine_disable_selection (html->engine);
++		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, preedit_position);
+ 		html_engine_edit_selection_updater_update_now (html->engine->selection_updater);
+-		pop_selection = TRUE;
++		had_selection = TRUE;
+ 	}
+-	initial_position = html->engine->cursor->position;
+-	D_IM (printf ("IM initial position %d\n", initial_position);)
+ 
+-	html_undo_freeze (html->engine->undo);
+-
+-	if (html->priv->im_pre_len > 0) {
+-		D_IM (printf ("IM delete last preedit %d + %d\n", html->priv->im_pre_pos, html->priv->im_pre_len);)
+-		
+-		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos);
+-		html_engine_set_mark (html->engine);
+-		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos + html->priv->im_pre_len);
+-		html_engine_delete (html->engine);
+-		deleted = html->priv->im_pre_len;
+-	} else
+-		html->priv->im_orig_style = html_engine_get_font_style (html->engine);
+-
+-	gtk_im_context_get_preedit_string (html->priv->im_context, &preedit_string, &attrs, &cursor_pos);
+-
+-	D_IM (printf ("IM preedit changed to %s\n", preedit_string);)
++	/* Insert the new preedit string
++	 */
++	gtk_im_context_get_preedit_string (html->priv->im_context,
++					   &preedit_string, &attrs, &cursor_pos);
++	
+ 	html->priv->im_pre_len = g_utf8_strlen (preedit_string, -1);
++	cursor_pos = CLAMP (cursor_pos, 0, html->priv->im_pre_len); /* Paranoia */
+ 
+ 	if (html->priv->im_pre_len > 0) {
+-		cursor_pos = CLAMP (cursor_pos, 0, html->priv->im_pre_len);
+ 		html->priv->im_pre_pos = html->engine->cursor->position;
+ 		html_engine_paste_text_with_extra_attributes (html->engine, preedit_string, html->priv->im_pre_len, attrs);
+-		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos + cursor_pos);
+-	} else
++	} else if (had_preedit)
+ 		html_engine_set_font_style (html->engine, 0, html->priv->im_orig_style);
++
+ 	g_free (preedit_string);
++	pango_attr_list_unref (attrs);
+ 
+-	if (pop_selection) {
+-		gint position= html->engine->cursor->position, cpos, mpos;
+-		D_IM (printf ("IM pop selection\n");)
+-		g_assert (html_engine_selection_stack_top (html->engine, &cpos, &mpos));
+-		if (position < MAX (cpos, mpos) + html->priv->im_pre_len - deleted)
+-			g_assert (html_engine_selection_stack_top_modify (html->engine, html->priv->im_pre_len - deleted));
+-		html_engine_selection_pop (html->engine);
++	/* Update the cursor hiding
++	 */
++	hide_cursor = had_selection && html->priv->im_pre_len > 0;
++	if (hide_cursor != html->priv->im_hide_cursor) {
++		if (hide_cursor)
++			html_engine_hide_cursor (html->engine);
++		else
++			html_engine_show_cursor (html->engine);
++
++		html->priv->im_hide_cursor = hide_cursor;
+ 	}
+-	/* that works for now, but idealy we should be able to have cursor positioned outside selection, so that preedit
+-	   cursor is in the right place */
+-	if (html->priv->im_pre_len == 0)
+-		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine,
+-						       initial_position >= html->priv->im_pre_pos + deleted ? initial_position - deleted : initial_position);
++
++	/* Get the correct cursor and mark for the new preedit string
++	 */
++	if (had_selection)
++		html_engine_selection_pop (html->engine);
++	else if (html->priv->im_pre_len > 0)
++		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, html->priv->im_pre_pos + cursor_pos);
+ 
+ 	if (html->engine->freeze_count == 1)
+ 		html_engine_thaw_idle_flush (html->engine);
+-	/* FIXME gtk_im_context_set_cursor_location (im_context, &area); */
++	
+ 	html->priv->im_block_reset = state;
+ 
+ 	html_undo_thaw (html->engine->undo);
++}
+ 
+-	D_IM (printf ("IM preedit changed cb [end] cursor %d(%p) mark %d(%p) active: %d\n",
+-		      html->engine->cursor ? html->engine->cursor->position : 0, html->engine->cursor,
+-		      html->engine->mark ? html->engine->mark->position : 0, html->engine->mark,
+-		      html_engine_is_selection_active (html->engine));)
++static void
++gtk_html_im_commit_cb (GtkIMContext *context, const gchar *str, GtkHTML *html)
++{
++	gboolean state = html->priv->im_block_reset;
++
++	html->priv->im_block_reset = TRUE;
++	
++	D_IM (printf ("IM commit %s\n", str);)
++	
++	remove_preedit (html);
++
++	html_engine_paste_text (html->engine, str, -1);
++	
++	update_preedit (html);
++
++	html->priv->im_block_reset = state;
++}
++
++static void
++gtk_html_im_preedit_start_cb (GtkIMContext *context, GtkHTML *html)
++{
++	html->priv->im_pre_len = 0;
++}
++
++static void
++gtk_html_im_preedit_changed_cb (GtkIMContext *context, GtkHTML *html)
++{
++	remove_preedit (html);
++	update_preedit (html);
+ }
+ 
+ static gchar *
+@@ -3127,6 +3148,7 @@
+ 	gchar *text = NULL;
+ 
+ 	if (!html_object_is_text (o)) {
++		*offset = 0;
+ 		if (e->cursor->offset == 0) {
+ 			prev = html_object_prev_not_slave (o);
+ 			if (html_object_is_text (prev)) {
+@@ -3142,7 +3164,6 @@
+ 			} else
+ 				return NULL;
+ 		}
+-		*offset = 0;
+ 	} else
+ 		*offset = e->cursor->offset;
+ 
+@@ -3163,10 +3184,14 @@
+ static gboolean
+ gtk_html_im_retrieve_surrounding_cb (GtkIMContext *context, GtkHTML *html)
+ {
+-	gint offset;
++	gint cursor_offset, cursor_index;
++	gchar *str;
++
++	D_IM (printf ("IM gtk_html_im_retrieve_surrounding_cb\n"));
+ 
+-	D_IM (printf ("IM gtk_html_im_retrieve_surrounding_cb\n");)
+-	gtk_im_context_set_surrounding (context, get_surrounding_text (html->engine, &offset), -1, offset);
++	str = get_surrounding_text (html->engine, &cursor_offset);
++	cursor_index = g_utf8_offset_to_pointer (str, cursor_offset) - str;
++	gtk_im_context_set_surrounding (context, str, -1, cursor_index);
+ 
+ 	return TRUE;
+ }
+@@ -3182,8 +3207,9 @@
+ 		html_engine_set_mark (html->engine);
+ 		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, orig_position + offset + n_chars);
+ 		html_engine_delete (html->engine);
+-		if (offset >= 0)
+-			html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, orig_position);
++		if (offset < 0)
++			orig_position -= MIN (n_chars, - offset);
++		html_cursor_jump_to_position_no_spell (html->engine->cursor, html->engine, orig_position);
+ 	}
+ 	return TRUE;
+ }
+--- gtkhtml-3.3.2/src/htmlengine-edit-cut-and-paste.c.imcommit	2004-09-16 17:49:53.000000000 -0400
++++ gtkhtml-3.3.2/src/htmlengine-edit-cut-and-paste.c	2004-09-21 17:40:46.039176128 -0400
+@@ -460,11 +460,11 @@
+ place_cursor_before_mark (HTMLEngine *e)
+ {
+ 	if (e->mark->position < e->cursor->position) {
+-		HTMLCursor *tmp;
++		HTMLCursor tmp;
+ 
+-		tmp = e->cursor;
+-		e->cursor = e->mark;
+-		e->mark = tmp;
++		html_cursor_copy (&tmp, e->cursor);
++		html_cursor_copy (e->cursor, e->mark);
++		html_cursor_copy (e->mark, &tmp);
+ 	}
+ }
+ 
+@@ -1713,12 +1713,10 @@
+ 
+ 		while (start->position < end->position) {
+ 			if (start->object->parent->parent == end->object->parent->parent) {
+-				if (e->mark)
+-					html_cursor_destroy (e->mark);
+-				html_cursor_destroy (e->cursor);
+-				e->mark = start;
+-				e->cursor = end;
+-				start = end = NULL;
++				if (!e->mark)
++					e->mark = html_cursor_new ();
++				html_cursor_copy (e->mark, start);
++				html_cursor_copy (e->cursor, end);
+ 				delete_object (e, NULL, NULL, HTML_UNDO_UNDO, TRUE);
+ 				break;
+ 			} else {
+@@ -1750,10 +1748,8 @@
+ 			}
+ 		}
+ 
+-		if (start)
+-			html_cursor_destroy (start);
+-		if (end)
+-			html_cursor_destroy (end);
++		html_cursor_destroy (start);
++		html_cursor_destroy (end);
+ 		html_cursor_jump_to_position (e->cursor, e, start_position);
+ 	}
+ 	html_undo_level_end (e->undo);

gtkhtml-fix-indic-navigation-129212.patch:

Index: gtkhtml-fix-indic-navigation-129212.patch
===================================================================
RCS file: gtkhtml-fix-indic-navigation-129212.patch
diff -N gtkhtml-fix-indic-navigation-129212.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gtkhtml-fix-indic-navigation-129212.patch	9 Jun 2008 13:52:45 -0000	1.3
@@ -0,0 +1,501 @@
+--- orig/src/htmlengine-edit-cut-and-paste.c
++++ mod/src/htmlengine-edit-cut-and-paste.c
+@@ -1445,14 +1445,15 @@
+ 				return;
+ 			}
+ 		}
+-		while (len != 0) {
+-			if (forward)
++		if (forward) {
++			int i;
++
++			for (i = len; i > 0; i--)
+ 				html_cursor_forward (e->cursor, e);
+-			else
+-				html_cursor_backward (e->cursor, e);
+-			len --;
++			html_engine_delete (e);
++		} else {
++			html_object_backspace (e->cursor->object, e->cursor, e);
+ 		}
+-		html_engine_delete (e);
+ 		html_engine_unblock_selection (e);
+ 		html_engine_thaw (e);	
+ 	}
+
+
+--- orig/src/htmlobject.c
++++ mod/src/htmlobject.c
+@@ -35,6 +35,7 @@
+ #include "htmlcursor.h"
+ #include "htmlengine.h"
+ #include "htmlengine-edit.h"
++#include "htmlengine-edit-cut-and-paste.h"
+ #include "htmlengine-save.h"
+ #include "htmlframe.h"
+ #include "htmlinterval.h"
+@@ -604,7 +605,7 @@
+ }
+ 
+ static gboolean
+-html_object_real_cursor_forward (HTMLObject *self, HTMLCursor *cursor)
++html_object_real_cursor_forward (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
+ {
+ 	gint len;
+ 
+@@ -645,7 +646,7 @@
+ }
+ 
+ static gboolean
+-html_object_real_cursor_backward (HTMLObject *self, HTMLCursor *cursor)
++html_object_real_cursor_backward (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
+ {
+ 	g_assert (self);
+ 	g_assert (cursor->object == self);
+@@ -726,6 +727,15 @@
+ 	return FALSE;
+ }
+ 
++static gboolean
++html_object_real_backspace (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
++{
++	html_cursor_backward (cursor, engine);
++	html_engine_delete (engine);
++
++	return TRUE;
++}
++
+ static int
+ html_object_real_get_right_edge_offset (HTMLObject *o, HTMLPainter *painter, int offset)
+ {
+@@ -813,6 +823,7 @@
+ 	klass->cursor_backward = html_object_real_cursor_backward;
+ 	klass->cursor_left = html_object_real_cursor_left;
+ 	klass->cursor_right = html_object_real_cursor_right;
++	klass->backspace = html_object_real_backspace;
+ 	klass->get_right_edge_offset = html_object_real_get_right_edge_offset;
+ 	klass->get_left_edge_offset = html_object_real_get_left_edge_offset;
+ }
+@@ -1546,15 +1557,15 @@
+ }
+ 
+ gboolean
+-html_object_cursor_forward (HTMLObject *self, HTMLCursor *cursor)
++html_object_cursor_forward (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
+ {
+-	return (* HO_CLASS (self)->cursor_forward) (self, cursor);
++	return (* HO_CLASS (self)->cursor_forward) (self, cursor, engine);
+ }
+ 
+ gboolean
+-html_object_cursor_backward (HTMLObject *self, HTMLCursor *cursor)
++html_object_cursor_backward (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
+ {
+-	return (* HO_CLASS (self)->cursor_backward) (self, cursor);
++	return (* HO_CLASS (self)->cursor_backward) (self, cursor, engine);
+ }
+ 
+ gboolean
+@@ -1569,6 +1580,12 @@
+ 	return (* HO_CLASS (self)->cursor_left) (self, painter, cursor);
+ }
+ 
++gboolean
++html_object_backspace (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
++{
++	return (* HO_CLASS (self)->backspace) (self, cursor, engine);
++}
++
+ /*********************
+  * movement on leafs
+  */
+
+
+--- orig/src/htmlobject.h
++++ mod/src/htmlobject.h
+@@ -262,13 +262,15 @@
+ 
+ 	HTMLDirection (*get_direction)   (HTMLObject *self);
+ 
+-	gboolean (*cursor_forward)       (HTMLObject *self, HTMLCursor *cursor);
+-	gboolean (*cursor_backward)       (HTMLObject *self, HTMLCursor *cursor);
++	gboolean (*cursor_forward)       (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine);
++	gboolean (*cursor_backward)       (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine);
+ 	gboolean (*cursor_right)         (HTMLObject *self, HTMLPainter *painter, HTMLCursor *cursor);
+ 	gboolean (*cursor_left)          (HTMLObject *self, HTMLPainter *painter, HTMLCursor *cursor);
+ 
+ 	int (*get_right_edge_offset) (HTMLObject *o, HTMLPainter *painter, int offset);
+ 	int (*get_left_edge_offset) (HTMLObject *o, HTMLPainter *painter, int offset);
++
++	gboolean (*backspace)       (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine);
+ };
+ 
+ extern HTMLObjectClass html_object_class;
+@@ -461,15 +463,20 @@
+ /* Movement functions */
+ /* move cursor in scope of object */
+ gboolean        html_object_cursor_forward        (HTMLObject            *self,
+-						   HTMLCursor            *cursor);
++						   HTMLCursor            *cursor,
++						   HTMLEngine            *engine);
+ gboolean        html_object_cursor_backward       (HTMLObject            *self,
+-						   HTMLCursor            *cursor);
++						   HTMLCursor            *cursor,
++						   HTMLEngine            *engine);
+ gboolean        html_object_cursor_left           (HTMLObject            *self,
+ 						   HTMLPainter           *painter,
+ 						   HTMLCursor            *cursor);
+ gboolean        html_object_cursor_right          (HTMLObject            *self,
+ 						   HTMLPainter           *painter,
+ 						   HTMLCursor            *cursor);
++gboolean        html_object_backspace             (HTMLObject            *self,
++						   HTMLCursor            *cursor,
++						   HTMLEngine            *engine);
+ 
+ /* get prev/next object in scope of parent */
+ HTMLObject     *html_object_next                  (HTMLObject            *self,
+
+
+--- orig/src/htmltext.c
++++ mod/src/htmltext.c
+@@ -33,6 +33,7 @@
+ #include "htmltext.h"
+ #include "htmlcolor.h"
+ #include "htmlcolorset.h"
++#include "htmlcluealigned.h"
+ #include "htmlclueflow.h"
+ #include "htmlcursor.h"
+ #include "htmlgdkpainter.h"
+@@ -2501,6 +2502,96 @@
+ }
+ 
+ static gboolean
++html_text_cursor_forward (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
++{
++	HTMLText *text;
++	HTMLTextPangoInfo *pi = NULL;
++	gint len, attrpos = 0;
++	gboolean retval = FALSE;
++
++	g_assert (self);
++	g_assert (cursor->object == self);
++
++	if (html_object_is_container (self))
++		return FALSE;
++
++	text = HTML_TEXT (self);
++	pi = html_text_get_pango_info (text, engine->painter);
++	len = html_object_get_length (self);
++	do {
++		attrpos = cursor->offset;
++		if (attrpos < len) {
++			cursor->offset++;
++			cursor->position++;
++			retval = TRUE;
++		} else {
++			retval = FALSE;
++			break;
++		}
++	} while (attrpos < len &&
++		 !pi->attrs[attrpos].is_sentence_end &&
++		 !pi->attrs[attrpos + 1].is_cursor_position);
++
++	return retval;
++}
++
++static gboolean
++html_cursor_allow_zero_offset (HTMLCursor *cursor, HTMLObject *o)
++{
++	if (cursor->offset == 1) {
++		HTMLObject *prev;
++
++		prev = html_object_prev_not_slave (o);
++		if (!prev || HTML_IS_CLUEALIGNED (prev))
++			return TRUE;
++		else {
++			while (prev && !html_object_accepts_cursor (prev))
++				prev = html_object_prev_not_slave (prev);
++
++			if (!prev)
++				return TRUE;
++		}
++	}
++
++	return FALSE;
++}
++
++static gboolean
++html_text_cursor_backward (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
++{
++	HTMLText *text;
++	HTMLTextPangoInfo *pi = NULL;
++	gint len, attrpos = 0;
++	gboolean retval = FALSE;
++
++	g_assert (self);
++	g_assert (cursor->object == self);
++
++	if (html_object_is_container (self))
++		return FALSE;
++
++	text = HTML_TEXT (self);
++	pi = html_text_get_pango_info (text, engine->painter);
++	len = html_object_get_length (self);
++	do {
++		attrpos = cursor->offset;
++		if (cursor->offset > 1 ||
++		    html_cursor_allow_zero_offset (cursor, self)) {
++			cursor->offset--;
++			cursor->position--;
++			retval = TRUE;
++		} else {
++			retval = FALSE;
++			break;
++		}
++	} while (attrpos > 0 &&
++		 !pi->attrs[attrpos].is_sentence_start &&
++		 !pi->attrs[attrpos - 1].is_cursor_position);
++
++	return retval;
++}
++
++static gboolean
+ html_text_cursor_right (HTMLObject *self, HTMLPainter *painter, HTMLCursor *cursor)
+ {
+ 	HTMLTextSlave *slave;
+@@ -2552,6 +2643,79 @@
+ 	return FALSE;
+ }
+ 
++static gboolean
++html_text_backspace (HTMLObject *self, HTMLCursor *cursor, HTMLEngine *engine)
++{
++	HTMLText *text;
++	HTMLTextPangoInfo *pi = NULL;
++	guint attrpos = 0, prevpos;
++	gboolean retval = FALSE;
++
++	g_assert (self);
++	g_assert (cursor->object == self);
++
++	text = HTML_TEXT (self);
++	pi = html_text_get_pango_info (text, engine->painter);
++	prevpos = cursor->offset;
++	do {
++		attrpos = cursor->offset;
++		if (cursor->offset > 1 ||
++		    html_cursor_allow_zero_offset (cursor, self)) {
++			cursor->offset--;
++			cursor->position--;
++			retval = TRUE;
++		} else {
++			if (cursor->offset == prevpos)
++				retval = FALSE;
++			break;
++		}
++	} while (attrpos > 0 && !pi->attrs[attrpos].is_cursor_position);
++
++	if (!retval) {
++		HTMLObject *prev;
++		gint offset = cursor->offset;
++
++		/* maybe no characters in this line. */
++		prev = html_object_prev_cursor (cursor->object, &offset);
++		cursor->offset = offset;
++		if (prev) {
++			if (!html_object_is_container (prev))
++				cursor->offset = html_object_get_length (prev);
++			cursor->object = prev;
++			cursor->position--;
++			retval = TRUE;
++		}
++	}
++	if (retval) {
++		if (pi->attrs[attrpos].backspace_deletes_character) {
++			gchar *cluster_text = &text->text[prevpos];
++			gchar *normalized_text = NULL;
++			glong len;
++			gint offset = cursor->offset, pos = cursor->position;
++
++			normalized_text = g_utf8_normalize (cluster_text,
++							    prevpos - attrpos,
++							    G_NORMALIZE_NFD);
++			len = g_utf8_strlen (normalized_text, -1);
++			html_engine_delete (engine);
++			if (len > 1) {
++				html_engine_insert_text (engine, normalized_text,
++							 g_utf8_offset_to_pointer (normalized_text, len - 1) - normalized_text);
++				html_cursor_jump_to (cursor, engine, self, offset);
++			}
++			if (normalized_text)
++				g_free (normalized_text);
++			/* restore a cursor position and offset for a split cursor */
++			engine->cursor->offset = offset;
++			engine->cursor->position = pos;
++		} else {
++			html_engine_delete (engine);
++		}
++	}
++
++	return retval;
++}
++
+ static int
+ html_text_get_right_edge_offset (HTMLObject *o, HTMLPainter *painter, int offset)
+ {
+@@ -2621,7 +2785,10 @@
+ 	object_class->append_selection_string = append_selection_string;
+ 	object_class->get_url = get_url;
+ 	object_class->get_target = get_target;
++	object_class->cursor_forward = html_text_cursor_forward;
++	object_class->cursor_backward = html_text_cursor_backward;
+ 	object_class->cursor_right = html_text_cursor_right;
+ 	object_class->cursor_left = html_text_cursor_left;
++	object_class->backspace = html_text_backspace;
+  	object_class->get_right_edge_offset = html_text_get_right_edge_offset;
+ 	object_class->get_left_edge_offset = html_text_get_left_edge_offset;
+--- gtkhtml-3.10.1/src/htmlcursor.c.fix-indic-navigation	2006-04-10 20:31:00.000000000 -0400
++++ gtkhtml-3.10.1/src/htmlcursor.c	2006-04-10 20:34:57.000000000 -0400
+@@ -203,12 +203,12 @@
+ 
+ 
+ static gboolean
+-forward (HTMLCursor *cursor)
++forward (HTMLCursor *cursor, HTMLEngine *engine)
+ {
+ 	gboolean retval;
+ 
+ 	retval = TRUE;
+-	if (!html_object_cursor_forward (cursor->object, cursor)) {
++	if (!html_object_cursor_forward (cursor->object, cursor, engine)) {
+ 		HTMLObject *next;
+ 
+ 		next = html_object_next_cursor (cursor->object, &cursor->offset);
+@@ -237,7 +237,7 @@
+ 		html_engine_spell_check_range (engine, engine->cursor, engine->cursor);
+ 
+ 	cursor->have_target_x = FALSE;
+-	retval = forward (cursor);
++	retval = forward (cursor, engine);
+ 
+ 	debug_location (cursor);
+ 
+@@ -245,12 +245,12 @@
+ }
+ 
+ static gboolean
+-backward (HTMLCursor *cursor)
++backward (HTMLCursor *cursor, HTMLEngine *engine)
+ {
+ 	gboolean retval;
+ 
+ 	retval = TRUE;
+-	if (!html_object_cursor_backward (cursor->object, cursor)) {
++	if (!html_object_cursor_backward (cursor->object, cursor, engine)) {
+ 		HTMLObject *prev;
+ 
+ 		prev = html_object_prev_cursor (cursor->object, &cursor->offset);
+@@ -280,7 +280,7 @@
+ 		html_engine_spell_check_range (engine, engine->cursor, engine->cursor);
+ 
+ 	cursor->have_target_x = FALSE;
+-	retval = backward (cursor);
++	retval = backward (cursor, engine);
+ 
+ 	debug_location (cursor);
+ 
+@@ -337,7 +337,7 @@
+ 		prev_x = x;
+ 		prev_y = y;
+ 
+-		if (! backward (cursor))
++		if (! backward (cursor, engine))
+ 			return FALSE;
+ 
+ 		html_object_get_cursor_base (cursor->object,
+@@ -556,14 +556,14 @@
+ 
+ 	html_cursor_copy (&original, cursor);
+ 
+-	while (forward (cursor)) {
++	while (forward (cursor, engine)) {
+ 		if (cursor->object == object && cursor->offset == offset)
+ 			return TRUE;
+ 	}
+ 
+ 	html_cursor_copy (cursor, &original);
+ 
+-	while (backward (cursor)) {
++	while (backward (cursor, engine)) {
+ 		if (cursor->object == object && cursor->offset == offset)
+ 			return TRUE;
+ 	}
+@@ -587,7 +587,7 @@
+ 	if (engine->need_spell_check)
+ 		html_engine_spell_check_range (engine, engine->cursor, engine->cursor);
+ 
+-	while (backward (cursor))
++	while (backward (cursor, engine))
+ 		;
+ }
+ 
+@@ -604,7 +604,7 @@
+ 	if (engine->need_spell_check)
+ 		html_engine_spell_check_range (engine, engine->cursor, engine->cursor);
+ 
+-	while (forward (cursor))
++	while (forward (cursor, engine))
+ 		;
+ }
+ 
+@@ -640,12 +640,12 @@
+ 
+ 	if (cursor->position < position) {
+ 		while (cursor->position < position) {
+-			if (! forward (cursor))
++			if (! forward (cursor, engine))
+ 				break;
+ 		}
+ 	} else if (cursor->position > position) {
+ 		while (cursor->position > position) {
+-			if (! backward (cursor))
++			if (! backward (cursor, engine))
+ 				break;
+ 		}
+ 	}
+@@ -749,7 +749,7 @@
+ 	while (1) {
+ 		if (!cursor->offset) {
+ 			html_cursor_copy (&copy, cursor);
+-			if (backward (cursor)) {
++			if (backward (cursor, engine)) {
+ 				new_level = html_object_get_parent_level (cursor->object);
+ 				if (new_level < level
+ 				    || (new_level == level && flow != cursor->object->parent)) {
+@@ -760,7 +760,7 @@
+ 				break;
+ 		}
+ 			else
+-				if (!backward (cursor))
++				if (!backward (cursor, engine))
+ 					break;
+ 		rv = TRUE;
+ 	}
+@@ -787,7 +787,7 @@
+ 	while (1) {
+ 		if (cursor->offset == html_object_get_length (cursor->object)) {
+ 			html_cursor_copy (&copy, cursor);
+-			if (forward (cursor)) {
++			if (forward (cursor, engine)) {
+ 				new_level = html_object_get_parent_level (cursor->object);
+ 				if (new_level < level
+ 				    || (new_level == level && flow != cursor->object->parent)) {
+@@ -798,7 +798,7 @@
+ 				break;
+ 		}
+ 			else
+-				if (!forward (cursor))
++				if (!forward (cursor, engine))
+ 					break;
+ 		rv = TRUE;
+ 	}


Index: gtkhtml38.spec
===================================================================
RCS file: gtkhtml38.spec
diff -N gtkhtml38.spec
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gtkhtml38.spec	9 Jun 2008 13:52:45 -0000	1.9
@@ -0,0 +1,575 @@
+%define gnome_icon_theme_version 1.2.3
+%define gtkhtml_major 3.8
+%define libgnomeprint_version 2.7.1
+
+### Abstract ###
+
+Name: gtkhtml38
+Version: 3.12.3
+Release: 6%{?dist}
+# editor component is GPLv2
+License: LGPLv2+ and GPLv2
+Group: System Environment/Libraries
+Summary: GtkHTML library, API version 3.8
+Source: http://ftp.gnome.org/pub/GNOME/sources/gtkhtml/3.12/gtkhtml-%{version}.tar.bz2
+URL: http://ftp.gnome.org/pub/GNOME/sources/gtkhtml/
+BuildRoot: %{_tmppath}/gtkhtml-%{version}-root
+
+### Patches ###
+
+# Partial band-aid for an editing crash (bug #129844)
+# http://bugzilla.ximian.com/show_bug.cgi?id=50052
+Patch1: gtkhtml-3.3.0-crash.patch
+# Patches from bugzilla.ximian.com #65670, #66206
+Patch2: gtkhtml-3.3.2-imcommit.patch
+Patch3: gtkhtml-fix-indic-navigation-129212.patch
+Patch4: gtkhtml-3.10.0-im-too-late.patch
+Patch5: print-font-gtkhtml3.8-fix.patch
+
+# Gnome.org bug #353424.
+Patch6: gtkhtml-3.11.92-chain-finalize.patch
+
+### Dependencies ###
+
+Requires: gnome-icon-theme >= %{gnome_icon_theme_version}
+Requires: libgnomeprint22 >= %{libgnomeprint_version}
+
+### Build Dependencies ###
+
+BuildRequires: gail-devel
+BuildRequires: gettext
+BuildRequires: gnome-icon-theme >= %{gnome_icon_theme_version}
+BuildRequires: intltool
+BuildRequires: libglade2-devel >= 2.0
+BuildRequires: libgnomeprint22-devel >= %{libgnomeprint_version}
+BuildRequires: libgnomeprintui22-devel >= %{libgnomeprint_version}
+BuildRequires: libgnomeui-devel >= 2.0
+BuildRequires: libtool
+
+%description
+GtkHTML is a lightweight HTML rendering/printing/editing engine.  It
+was originally based on KHTMLW, but is now being developed
+independently of it.
+
+This package implements the GtkHTML 3.8 API, for packages who cannot
+use newer versions of GtkHTML.
+
+%package devel
+Group: Development/Libraries
+Summary: Libraries, includes, etc to develop GtkHTML 3.8 applications
+Requires: %{name} = %{version}-%{release}
+Requires: libglade2-devel >= 2.0
+Requires: libgnomeprint22-devel >= 2.2.0
+Requires: libgnomeprintui22-devel >= 2.2.1
+Requires: libgnomeui-devel >= 2.0
+
+%description devel
+Libraries and include files that can be used to develop GtkHTML applications.
+
+This package implements the GtkHTML 3.8 API, for packages who cannot
+use newer versions of GtkHTML.
+
+%prep
+%setup -q -n gtkhtml-%{version}
+%patch1 -p1 -b .crash
+%patch3 -p1 -b .fix-129212
+%patch4 -p1 -b .im-too-late
+%patch5 -p1 -b .print
+%patch6 -p1 -b .chain-finalize
+
+%build
+%configure
+export tagname=CC
+make LIBTOOL=/usr/bin/libtool
+
+%install
+rm -rf $RPM_BUILD_ROOT
+export tagname=CC
+make install LIBTOOL=/usr/bin/libtool DESTDIR=$RPM_BUILD_ROOT
+
+rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la
+rm -f $RPM_BUILD_ROOT/%{_libdir}/*.a
+rm -f $RPM_BUILD_ROOT/%{_libdir}/gtkhtml/*.la
+rm -f $RPM_BUILD_ROOT/%{_libdir}/gtkhtml/*.a
+
+for serverfile in $RPM_BUILD_ROOT%{_libdir}/bonobo/servers/*.server; do
+  sed -i -e 's|location *= *"/usr/lib\(64\)*/|location="/usr/$LIB/|' $serverfile
+done
+
+%find_lang gtkhtml-%{gtkhtml_major}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files -f gtkhtml-%{gtkhtml_major}.lang
+%defattr(-, root, root)
+%doc AUTHORS ChangeLog NEWS README COPYING COPYING.LIB TODO
+%dir %{_libdir}/gtkhtml
+%{_libdir}/libgtkhtml-%{gtkhtml_major}.so.*
+%{_libdir}/gtkhtml/libgnome-gtkhtml-editor-%{gtkhtml_major}.so
+%{_libdir}/bonobo/servers/GNOME_GtkHTML_Editor-%{gtkhtml_major}.server
+%{_datadir}/gtkhtml-%{gtkhtml_major}
+
+%files devel
+%defattr(-, root, root)
+%{_includedir}/libgtkhtml-%{gtkhtml_major}
+%{_libdir}/libgtkhtml-%{gtkhtml_major}.so
+%{_libdir}/pkgconfig/*.pc
+
+%changelog
+* Wed Aug 29 2007 Fedora Release Engineering <rel-eng at fedoraproject dot org> - 3.12.3-6
+- Rebuild for selinux ppc32 issue.
+
+* Fri Aug  3 2007 Bill Nottingham <notting at redhat.com>
+- tweak license tag
+
+* Wed Jun 20 2007 Bill Nottingham <notting at redhat.com> - 3.12.3-5
+- add patch for setting font when printing (#239205, <paul at andreassen.com.au>)
+
+* Wed Apr 11 2007 Bill Nottingham <notting at redhat.com> - 3.12.3-4
+- remove Provides: re rpm 'feature' (#236009)
+
+* Mon Mar 12 2007 Bill Nottingham <notting at redhat.com> - 3.12.3-3
+- remove extraneous rm as noted per review
+
+* Tue Feb 27 2007 Bill Nottingham <notting at redhat.com> - 3.12.3-2
+- repackage as gtkhtml38
+
+* Mon Jan 29 2007 Matthew Barnes <mbarnes at redhat.com> - 3.12.3-1.fc6
+- Update to 3.12.3
+
+* Mon Nov 20 2006 Matthew Barnes <mbarnes at redhat.com> - 3.12.2-1.fc6
+- Update to 3.12.2
+
+* Fri Oct 27 2006 Matthew Barnes <mbarnes at redhat.com> - 3.12.1-1.fc6
+- Update to 3.12.1
+
+* Mon Sep  4 2006 Matthew Barnes <mbarnes at redhat.com> - 3.12.0-1.fc6
+- Update to 3.12.0
+- Remove patch for RH bug #202409 (fixed upstream).
+
+* Tue Aug 29 2006 Matthew Barnes <mbarnes at redhat.com> - 3.11.92-2.fc6
+- Add patch for Gnome.org bug #353424.
+
+* Mon Aug 21 2006 Matthew Barnes <mbarnes at redhat.com> - 3.11.92-1.fc6
+- Update to 3.11.92
+
+* Fri Aug 18 2006 Matthew Barnes <mbarnes at redhat.com> - 3.11.91-2.fc6
+- Add patch for RH bug #202409.
+
+* Mon Aug  7 2006 Matthew Barnes <mbarnes at redhat.com> - 3.11.91-1
+- Update to 3.11.91
+
+* Tue Jul 25 2006 Matthew Barnes <mbarnes at redhat.com> - 3.11.90.1-1
+- Update to 3.11.90.1
+
+* Wed Jul 12 2006 Matthias Clasen <mclasen at redhat.com> - 3.11.4-2
+- Rebuild
+
+* Wed Jul 12 2006 Matthew Barnes <mbarnes at redhat.com> - 3.11.4-1
+- Update to 3.11.4
+
+* Wed Jul 12 2006 Jesse Keating <jkeating at redhat.com> - 3.11.3-1.1
+- rebuild
+
+* Tue Jun 13 2006 Matthias Clasen <mclasen at redhat.com> - 3.11.3-1
+- Update to 3.11.3
+
+* Tue May 16 2006 Matthew Barnes <mbarnes at redhat.com> - 3.11.2-1
+- Update to 3.11.2
+
+* Mon Apr 10 2006 Matthias Clasen <mclasen at redhat.com> - 3.10.1-2
+- Update to 3.10.1
+- Update patches
+
+* Fri Apr  7 2006 Dan Williams <dcbw at redhat.com> - 3.10.0-2
+- Fix crash with IM enabled
+
+* Mon Mar 13 2006 Ray Strode <rstrode at redhat.com> - 3.10.0-1
+- Update to 3.10.0
+
+* Mon Feb 13 2006 Matthias Clasen <mclasen at redhat.com> - 3.9.91-1
+- Update to 3.9.91
+
+* Fri Feb 10 2006 Jesse Keating <jkeating at redhat.com> - 3.9.90-3.2
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating <jkeating at redhat.com> - 3.9.90-3.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Tue Jan 31 2006 Matthias Clasen <mclasen at redhat.com> - 3.9.90-3
+- Actually apply the patch
+
+* Tue Jan 31 2006 Matthias Clasen <mclasen at redhat.com> - 3.9.90-2
+- Fix a crash
+
+* Mon Jan 30 2006 David Malcolm <dmalcolm at redhat.com> - 3.9.90-1
+- 3.9.90
+
+* Wed Jan 25 2006 David Malcolm <dmalcolm at redhat.com> - 3.9.5-1
+- 3.9.5
+- be more explicit about packaged bonobo server and so files, relying less on 
+  globbing
+
+* Thu Jan 19 2006 Ray Strode <rstrode at redhat.com> - 3.9.4-3
+- s/sed -ie/sed -i -e/
+
+* Thu Jan 19 2006 Ray Strode <rstrode at redhat.com> - 3.9.4-3
+- fix broken fix in 3.9.4-2
+
+* Thu Jan 19 2006 Ray Strode <rstrode at redhat.com> - 3.9.4-2
+- fix multlib shlib bonobo problem (bug 156982)
+
+* Tue Jan  3 2006 David Malcolm <dmalcolm at redhat.com> - 3.9.4-1
+- 3.9.4
+
+* Mon Dec 19 2005 David Malcolm <dmalcolm at redhat.com> - 3.9.3-1
+- 3.9.3
+
+* Fri Dec 09 2005 Jesse Keating <jkeating at redhat.com>
+- rebuilt
+
+* Tue Dec  6 2005 David Malcolm <dmalcolm at redhat.com> - 3.9.2-1
+- 3.9.2
+
+* Tue Nov 29 2005 David Malcolm <dmalcolm at redhat.com> - 3.8.2-1
+- 3.8.2
+
+* Thu Nov 10 2005 David Malcolm <dmalcolm at redhat.com> - 3.8.1-2
+- Remove static libraries; rewrite specfile to be more explicit about the
+  package payload (#172883)
+
+* Tue Oct  4 2005 David Malcolm <dmalcolm at redhat.com> - 3.8.1-1
+- 3.8.1
+
+* Tue Sep  6 2005 David Malcolm <dmalcolm at redhat.com> - 3.8.0-1
+- 3.8.0
+
+* Tue Aug 23 2005 David Malcolm <dmalcolm at redhat.com> - 3.7.7-1
+- 3.7.7
+
+* Fri Aug 12 2005 David Malcolm <dmalcolm at redhat.com> - 3.7.6-2
+- Mark libdir/gtkhtml as being owned by the package (#165771)
+
+* Tue Aug  9 2005 David Malcolm <dmalcolm at redhat.com> - 3.7.6-1
+- 3.7.6
+
+* Tue Jul 26 2005 David Malcolm <dmalcolm at redhat.com> - 3.7.5-4
+- actually add patch to CVS this time
+
+* Tue Jul 26 2005 David Malcolm <dmalcolm at redhat.com> - 3.7.5-3
+- Added patch to use pango for cursor navigation and deletion, fixing problems
+  with indic scripts (#129212)
+
+* Mon Jul 25 2005 David Malcolm <dmalcolm at redhat.com> - 3.7.5-2
+- update gtkhtml_major from 3.6 to 3.8
+
+* Mon Jul 25 2005 David Malcolm <dmalcolm at redhat.com> - 3.7.5-1
+- 3.7.5
+
+* Mon Apr 11 2005 David Malcolm <dmalcolm at redhat.com> - 3.6.2-1
+- 3.6.2
+
+* Thu Mar 17 2005 David Malcolm <dmalcolm at redhat.com> - 3.6.1-1
+- 3.6.1
+
+* Wed Mar  9 2005 David Malcolm <dmalcolm at redhat.com> - 3.6.0-2
+- rebuild
+
+* Tue Mar  8 2005 David Malcolm <dmalcolm at redhat.com> - 3.6.0-1
+- 3.6.0
+
+* Tue Mar  1 2005 David Malcolm <dmalcolm at redhat.com> - 3.5.7-1
+- 3.5.7
+
+* Tue Feb  8 2005 David Malcolm <dmalcolm at redhat.com> - 3.5.6-2
+- Changed deprecated "Copyright" directive into a "License" directive
+- License directive now reads "LGPL/GPL", rather than "LGPL", reflecting comment in README file
+
+* Tue Feb  8 2005 David Malcolm <dmalcolm at redhat.com> - 3.5.6-1
+- 3.5.6
+
+* Tue Feb  1 2005 David Malcolm <dmalcolm at redhat.com> - 3.5.5-1
+- 3.5.5
+
+* Wed Jan 26 2005 David Malcolm <dmalcolm at redhat.com> - 3.5.4-1
+- Upgrade to 3.5.4
+- Update gtkhtml_major from 3.1 to 3.6 to locate translations
+- Temporarily remove IM patch
+
+* Tue Sep 21 2004 Owen Taylor <otaylor at redhat.com> - 3.3.2-2
+- Add a patch to fix input method commit issues (#Bug 130751)
+
+* Thu Sep 16 2004 Owen Taylor <otaylor at redhat.com> - 3.3.2-1
+- Upgrade to 3.3.2 (Fixes tab display, #132208, ordering
+  issues with IM preedit #130751, Leon Ho)
+
+* Fri Sep  3 2004 Owen Taylor <otaylor at redhat.com> - 3.3.1-1
+- Upgrade to 3.3.1, includes GtkFileChoose support (#130039)
+
+* Fri Aug 13 2004 Tim Waugh <twaugh at redhat.com> - 3.3.0-3
+- Prevent a crash (bug #129844).
+
+* Mon Aug  9 2004 Owen Taylor <otaylor at redhat.com> - 3.3.0-2
+- Fix a problem where preformatted text wrapped at column 0
+
+* Wed Aug  4 2004 Owen Taylor <otaylor at redhat.com> - 3.3.0-1
+- Upgrade to 3.3.0 (gnome-2-8-devel branch)
+
+* Mon Jul 26 2004 David Malcolm <dmalcolm at redhat.com>
+- rebuilt
+
+* Thu Jul 22 2004 David Malcolm <dmalcolm at redhat.com>
+- rebuilt
+
+* Thu Jul 22 2004 David Malcolm <dmalcolm at redhat.com>
+- rebuilt
+
+* Thu Jul 22 2004 David Malcolm <dmalcolm at redhat.com>
+- rebuilt
+
+* Tue Jul 20 2004 David Malcolm <dmalcolm at redhat.com> - 3.1.18-1
+- 3.1.18
+
+* Thu Jul  8 2004 David Malcolm <dmalcolm at redhat.com>
+- rebuilt
+
+* Wed Jul  7 2004 David Malcolm <dmalcolm at redhat.com>
+- rebuilt
+
+* Tue Jul  6 2004 David Malcolm <dmalcolm at redhat.com> - 3.1.17-1
+- 3.1.17
+
+* Tue Jun 15 2004 Elliot Lee <sopwith at redhat.com>
+- rebuilt
+
+* Mon Jun  7 2004 David Malcolm <dmalcolm at redhat.com> - 3.1.16-2
+- rebuilt
+
+* Fri Jun  4 2004 David Malcolm <dmalcolm at redhat.com> - 3.1.16-1
+- 3.1.16
+
+* Fri May 21 2004 David Malcolm <dmalcolm at redhat.com> - 3.1.14-2
+- rebuilt
+
+* Thu May 20 2004 David Malcolm <dmalcolm at redhat.com> - 3.1.14-1
+- 3.1.14
+
+* Tue Apr 20 2004 David Malcolm <dmalcolm at redhat.com> - 3.1.12-1
+- 3.1.12
+
+* Wed Mar 10 2004 Jeremy Katz <katzj at redhat.com> - 3.1.9-1
+- 3.1.9
+
+* Tue Mar 02 2004 Elliot Lee <sopwith at redhat.com>
+- rebuilt
+
+* Tue Feb 17 2004 Jeremy Katz <katzj at redhat.com> - 3.1.8-1
+- 3.1.8
+
+* Fri Feb 13 2004 Elliot Lee <sopwith at redhat.com>
+- rebuilt
+
+* Tue Jan 27 2004 Jeremy Katz <katzj at redhat.com> - 3.1.7-1
+- 3.1.7
+
+* Wed Jan 14 2004 Jeremy Katz <katzj at redhat.com> 3.1.6-0
+- update to 3.1.6
+
+* Sat Jan  3 2004 Jeremy Katz <katzj at redhat.com> 3.1.5-0
+- update to 3.1.5
+
+* Thu Sep 25 2003 Jeremy Katz <katzj at redhat.com> 3.0.9-5
+- rebuild
+
+* Thu Sep 25 2003 Jeremy Katz <katzj at redhat.com> 3.0.9-4
+- add patch for XIM (#91481)
+
+* Tue Sep 23 2003 Jeremy Katz <katzj at redhat.com> 3.0.9-3
+- rebuild
+
+* Fri Sep 19 2003 Jeremy Katz <katzj at redhat.com> 3.0.9-2
+- add patch to fix crash on ia64
+
+* Fri Sep 19 2003 Jeremy Katz <katzj at redhat.com> 3.0.9-1
+- 3.0.9
+
+* Mon Sep  8 2003 Jeremy Katz <katzj at redhat.com> 
+- add some buildrequires (#103901)
+
+* Thu Sep  4 2003 Jeremy Katz <katzj at redhat.com> 3.0.8-3
+- patch from upstream copy for new libbonobo oddities (#103730)
+
+* Mon Aug  4 2003 Jeremy Katz <katzj at redhat.com> 3.0.8-1
+- 3.0.8
+
+* Thu Jul 10 2003 Jeremy Katz <katzj at redhat.com> 3.0.7-1
+- 3.0.7
+
+* Wed Jun 11 2003 Jeremy Katz <katzj at redhat.com> 
+- add some buildrequires (#97181)
+
+* Tue Jun 10 2003 Jeremy Katz <katzj at redhat.com> 3.0.5-2
+- rebuild
+
+* Mon Jun  9 2003 Jeremy Katz <katzj at redhat.com> 3.0.5-1
+- 3.0.5
+
+* Wed Jun 5 2003 Elliot Lee <sopwith at redhat.com>
+- rebuilt
+
+* Thu Jun  5 2003 Jeremy Katz <katzj at redhat.com> 3.0.4-3
+- rebuild
+
+* Mon May 26 2003 Jeremy Katz <katzj at redhat.com> 3.0.4-2
+- rebuild to fix deps
+
+* Sun May 25 2003 Jeremy Katz <katzj at redhat.com> 3.0.4-1
+- 3.0.4
+
+* Tue May  6 2003 Jeremy Katz <katzj at redhat.com> 3.0.3-1
+- 3.0.3
+
+* Wed Apr 16 2003 Jeremy Katz <katzj at redhat.com> 3.0.2-2
+- libtool's revenge
+
+* Wed Apr 16 2003 Jeremy Katz <katzj at redhat.com> 3.0.2-1
+- update to 3.0.2
+
+* Sun Apr  6 2003 Jeremy Katz <katzj at redhat.com> 1.1.9-1
+- update to 1.1.9
+
+* Mon Mar 24 2003 Jeremy Katz <katzj at redhat.com> 1.1.8-6
+- rebuild for new gal
+
+* Mon Feb 24 2003 Elliot Lee <sopwith at redhat.com> 1.1.8-5
+- debuginfo rebuild
+
+* Thu Feb 20 2003 Jeremy Katz <katzj at redhat.com> 1.1.8-4
+- gtkhtml capplet doesn't need to be in the menus; it's configurable 
+  from within evolution
+
+* Mon Feb 10 2003 Akira TAGOH <tagoh at redhat.com> 1.1.8-3
+- don't use fontset as default. (#83899)
+- improve the default font for CJK.
+
+* Sat Feb  8 2003 Akira TAGOH <tagoh at redhat.com> 1.1.8-2
+- hack to modify po dynamically to add currect XLFD for CJK.
+- re-enable patches.
+
+* Fri Feb  7 2003 Jeremy Katz <katzj at redhat.com> 1.1.8-1
+- 1.1.8
+- disable tagoh's patch for now.  it's not applied upstream and ends up 
+  backing out some translation changes
+
+* Fri Feb  7 2003 Akira TAGOH <tagoh at redhat.com> 1.1.7-4
+- gtkhtml-1.1.7-fixfont.patch: applied to allow fontset by default.
+- gtkhtml-po.tar.bz2: to changes default display/print fonts for CJK.
+  perhaps it should be removed when the upstream will releases the next version.
+- gtkhtml-1.1.7-domain.patch: define GNOME_EXPLICIT_TRANSLATION_DOMAIN as gtkhtml-1.1.
+
+* Wed Feb  5 2003 Bill Nottingham <notting at redhat.com> 1.1.7-2
+- fix some spewage to stdout/stderr
+
+* Wed Jan 22 2003 Tim Powers <timp at redhat.com>
+- rebuilt
+
+* Fri Dec 13 2002 Jeremy Katz <katzj at redhat.com> 1.1.7-1
+- update to 1.1.7
+
+* Tue Nov 12 2002 Jeremy Katz <katzj at redhat.com> 1.1.6-1
+- update to 1.1.6
+
+* Thu Nov  7 2002 Jeremy Katz <katzj at redhat.com> 1.1.5-3
+- rebuild to really fix Xlib paths now that gnome-libs is fixed
+
+* Tue Nov  5 2002 Jeremy Katz <katzj at redhat.com> 1.1.5-2
+- rebuild to fix Xlib paths in .pc files
+
+* Fri Nov  1 2002 Jeremy Katz <katzj at redhat.com> 1.1.5-1
+- update to 1.1.5
+
+* Thu Oct 24 2002 Jeremy Katz <katzj at redhat.com> 1.1.4-1
+- remove unwanted files from buildroot
+- update to 1.1.4
+
+* Thu Sep 26 2002 Jeremy Katz <katzj at redhat.com>
+- make sure we get all of the stuff from %%{_datadir}/gtkhtml-1.1
+
+* Wed Sep 25 2002 Jeremy Katz <katzj at redhat.com>
+- update to 1.1.2
+
+* Tue Jul 23 2002 Owen Taylor <otaylor at redhat.com>
+- Fix problem with finding the closest size
+
+* Fri Jun 21 2002 Tim Powers <timp at redhat.com>
+- automated rebuild
+
+* Wed Jun 19 2002 Jeremy Katz <katzj at redhat.com>
+- update to 1.0.4
+- remove .la files
+
+* Thu May 23 2002 Tim Powers <timp at redhat.com>
+- automated rebuild
+
+* Tue May 14 2002 Jeremy Katz <katzj at redhat.com>
+- tweak buildrequires for libcapplet0-devel
+
+* Tue Mar 19 2002 Jeremy Katz <katzj at redhat.com>
+- update to gtkhtml 1.0.2
+
+* Thu Mar  7 2002 Jeremy Katz <katzj at redhat.com>
+- remove superflous capplet entry (#59698)
+
+* Mon Jan 14 2002 Jeremy Katz <katzj at redhat.com>
+- rebuild to get rid of ridiculous libgal18 linkage
+
+* Sat Jan 12 2002 Jeremy Katz <katzj at redhat.com>
+- update to 1.0.1
+
+* Sun Dec  2 2001 Jeremy Katz <katzj at redhat.com>
+- update to 1.0.0
+
+* Sat Nov 17 2001 Jeremy Katz <katzj at redhat.com>
+- update to 0.16.1
+
+* Mon Nov  5 2001 Jeremy Katz <katzj at redhat.com>
+- updated to 0.16
+
+* Tue Oct 23 2001 Havoc Pennington <hp at redhat.com>
+- 0.15
+
+* Thu Oct  4 2001 Havoc Pennington <hp at redhat.com>
+- 0.14
+- remove --without-bonobo
+- langify
+
+* Mon Aug 20 2001 Alexander Larsson <alexl at redhat.com> 0.9.2-9
+- Moved gnome-conf file to the devel package
+- Fixes SHOULD-FIX bug #49796
+
+* Mon Jul 30 2001 Alexander Larsson <alexl at redhat.com> 
+- Added dependencies on -devel packages from the gtkhtml-devel package
+
+* Fri Jul 20 2001 Alexander Larsson <alexl at redhat.com>
+- Add more build dependencies
+
+* Thu Jul 17 2001 Bill Nottingham <notting at redhat.com>
+- fix devel package requirements
+
+* Sat Jul  7 2001 Tim Powers <timp at redhat.com>
+- changed bad groups
+- laguified package
+
+* Tue Jul 03 2001 Havoc Pennington <hp at redhat.com>
+- fix X11/libraries -> X11/Libraries, #47137 
+
+* Wed Jun 13 2001 Bill Nottingham <notting at redhat.com>
+- fix brokenness due to gal damage
+
+* Wed Jun  6 2001 Bill Nottingham <notting at redhat.com>
+- adapt included specfile

print-font-gtkhtml3.8-fix.patch:

Index: print-font-gtkhtml3.8-fix.patch
===================================================================
RCS file: print-font-gtkhtml3.8-fix.patch
diff -N print-font-gtkhtml3.8-fix.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ print-font-gtkhtml3.8-fix.patch	9 Jun 2008 13:52:45 -0000	1.3
@@ -0,0 +1,35 @@
+Index: gtkhtml-3.10.3/src/htmlprinter.c
+===================================================================
+--- gtkhtml-3.10.3.orig/src/htmlprinter.c	2006-05-06 15:42:08.000000000 +1000
++++ gtkhtml-3.10.3/src/htmlprinter.c	2007-04-15 21:58:17.102328192 +1000
+@@ -790,6 +790,7 @@ html_printer_new (GtkWidget *widget, Gno
+ 
+ 	font_map = gnome_print_pango_get_default_font_map ();
+ 	painter->pango_context = gnome_print_pango_create_context (font_map);
++	gnome_print_pango_update_context(painter->pango_context, context);
+ 	
+ 	return HTML_PAINTER (new);
+ }
+Index: gtkhtml-3.10.3/src/htmltext.c
+===================================================================
+--- gtkhtml-3.10.3.orig/src/htmltext.c	2006-07-29 17:11:05.000000000 +1000
++++ gtkhtml-3.10.3/src/htmltext.c	2007-04-15 21:59:01.014652504 +1000
+@@ -1214,12 +1214,16 @@ html_text_prepare_attrs (HTMLText *text,
+ 			pango_attr_list_insert (attrs, attr);
+ 		}
+ 	} else {
+-		if (fabs (painter->font_manager.magnification - 1.0) > 0.001) {
+-			attr = pango_attr_size_new (painter->font_manager.var_size*painter->font_manager.magnification);
++		if (painter->font_manager.variable.face != NULL) {
++			attr = pango_attr_family_new (painter->font_manager.variable.face);
+ 			attr->start_index = 0;
+ 			attr->end_index = text->text_bytes;
+ 			pango_attr_list_insert (attrs, attr);
+ 		}
++		attr = pango_attr_size_new (painter->font_manager.var_size*painter->font_manager.magnification);
++		attr->start_index = 0;
++		attr->end_index = text->text_bytes;
++		pango_attr_list_insert (attrs, attr);
+ 		pango_attr_list_splice (attrs, text->attr_list, 0, 0);
+ 	}
+ 


Index: sources
===================================================================
RCS file: sources
diff -N sources
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sources	9 Jun 2008 13:52:45 -0000	1.4
@@ -0,0 +1 @@
+b580590014988b02e51b66be65319570  gtkhtml-3.12.3.tar.bz2


--- dead.package DELETED ---




More information about the fedora-extras-commits mailing list