packages: gtkhtml/gtk3.patch (NEW) - fix building with GTK+ 3.x

wiget wiget at pld-linux.org
Sun Nov 14 17:57:58 CET 2010


Author: wiget                        Date: Sun Nov 14 16:57:58 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- fix building with GTK+ 3.x

---- Files affected:
packages/gtkhtml:
   gtk3.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/gtkhtml/gtk3.patch
diff -u /dev/null packages/gtkhtml/gtk3.patch:1.1
--- /dev/null	Sun Nov 14 17:57:58 2010
+++ packages/gtkhtml/gtk3.patch	Sun Nov 14 17:57:53 2010
@@ -0,0 +1,167 @@
+commit aabac45a84a99ccf01a07a5f4b928c4bb0fd26b3
+Author: Matthew Barnes <mbarnes at redhat.com>
+Date:   Mon Nov 8 20:35:41 2010 -0500
+
+    Adapt to new GtkScrollable interface.
+
+diff --git a/gtkhtml/gtkhtml.c b/gtkhtml/gtkhtml.c
+index 0ce2d42..4ff98f7 100644
+--- a/gtkhtml/gtkhtml.c
++++ b/gtkhtml/gtkhtml.c
+@@ -616,33 +616,45 @@ horizontal_scroll_cb (GtkAdjustment *adjustment, gpointer data)
+ }
+ 
+ static void
+-connect_adjustments (GtkHTML *html,
+-		     GtkAdjustment *hadj,
+-		     GtkAdjustment *vadj)
++hadjustment_notify_cb (GtkHTML *html)
+ {
++	GtkScrollable *scrollable;
+ 	GtkAdjustment *hadjustment;
+-	GtkAdjustment *vadjustment;
+ 
+-	hadjustment = gtk_layout_get_hadjustment (GTK_LAYOUT (html));
+-	vadjustment = gtk_layout_get_vadjustment (GTK_LAYOUT (html));
++	scrollable = GTK_SCROLLABLE (html);
++	hadjustment = gtk_scrollable_get_hadjustment (scrollable);
++
++	if (html->hadj_connection > 0)
++		g_signal_handler_disconnect (
++			hadjustment, html->hadj_connection);
+ 
+-	if (html->hadj_connection != 0)
+-		g_signal_handler_disconnect (hadjustment, html->hadj_connection);
++	if (hadjustment != NULL)
++		html->hadj_connection = g_signal_connect (
++			hadjustment, "value_changed",
++			G_CALLBACK (horizontal_scroll_cb), html);
++	else
++		html->hadj_connection = 0;
++}
++
++static void
++vadjustment_notify_cb (GtkHTML *html)
++{
++	GtkScrollable *scrollable;
++	GtkAdjustment *vadjustment;
++
++	scrollable = GTK_SCROLLABLE (html);
++	vadjustment = gtk_scrollable_get_vadjustment (scrollable);
+ 
+ 	if (html->vadj_connection != 0)
+-		g_signal_handler_disconnect (vadjustment, html->vadj_connection);
++		g_signal_handler_disconnect (
++			vadjustment, html->vadj_connection);
+ 
+-	if (vadj != NULL)
+-		html->vadj_connection =
+-			g_signal_connect (vadj, "value_changed", G_CALLBACK (vertical_scroll_cb), (gpointer) html);
++	if (vadjustment != NULL)
++		html->vadj_connection = g_signal_connect (
++			vadjustment, "value_changed",
++			G_CALLBACK (vertical_scroll_cb), html);
+ 	else
+ 		html->vadj_connection = 0;
+-
+-	if (hadj != NULL)
+-		html->hadj_connection =
+-			g_signal_connect (hadj, "value_changed", G_CALLBACK (horizontal_scroll_cb), (gpointer) html);
+-	else
+-		html->hadj_connection = 0;
+ }
+ 
+ 
+@@ -781,7 +793,8 @@ dispose (GObject *object)
+ 		html->ibeam_cursor = NULL;
+ 	}
+ 
+-	connect_adjustments (html, NULL, NULL);
++	gtk_scrollable_set_hadjustment (GTK_SCROLLABLE (html), NULL);
++	gtk_scrollable_set_vadjustment (GTK_SCROLLABLE (html), NULL);
+ 
+ 	if (html->priv) {
+ 		if (html->priv->idle_handler_id != 0) {
+@@ -2444,20 +2457,6 @@ utf8_filter_out_bom (gchar *str) {
+ 	return str;
+ }
+ 
+-static void
+-set_adjustments (GtkLayout     *layout,
+-		 GtkAdjustment *hadj,
+-		 GtkAdjustment *vadj)
+-{
+-	GtkHTML *html = GTK_HTML (layout);
+-
+-	connect_adjustments (html, hadj, vadj);
+-
+-	if (parent_class->set_scroll_adjustments)
+-		(* parent_class->set_scroll_adjustments) (layout, hadj, vadj);
+-}
+-
+-
+ /* Initialization.  */
+ static void
+ set_focus_child (GtkContainer *containter, GtkWidget *w)
+@@ -3240,8 +3239,6 @@ gtk_html_class_init (GtkHTMLClass *klass)
+ 
+ 	container_class->set_focus_child = set_focus_child;
+ 
+-	layout_class->set_scroll_adjustments = set_adjustments;
+-
+ 	html_class->scroll            = scroll;
+ 	html_class->cursor_move       = cursor_move;
+ 	html_class->command           = command;
+@@ -3541,20 +3538,38 @@ gtk_html_init (GtkHTML* html)
+ 	html->priv->im_block_reset = FALSE;
+ 	html->priv->im_pre_len = 0;
+ 
+-	g_signal_connect (G_OBJECT (html->priv->im_context), "commit",
+-			  G_CALLBACK (gtk_html_im_commit_cb), html);
+-	g_signal_connect (G_OBJECT (html->priv->im_context), "preedit_start",
+-			  G_CALLBACK (gtk_html_im_preedit_start_cb), html);
+-	g_signal_connect (G_OBJECT (html->priv->im_context), "preedit_changed",
+-			  G_CALLBACK (gtk_html_im_preedit_changed_cb), html);
+-	g_signal_connect (G_OBJECT (html->priv->im_context), "retrieve_surrounding",
+-			  G_CALLBACK (gtk_html_im_retrieve_surrounding_cb), html);
+-	g_signal_connect (G_OBJECT (html->priv->im_context), "delete_surrounding",
+-			  G_CALLBACK (gtk_html_im_delete_surrounding_cb), html);
+-
+-	html->priv->notify_monospace_font_id =
+-		gconf_client_notify_add (gconf_client_get_default (), "/desktop/gnome/interface/monospace_font_name",
+-					 client_notify_monospace_font, html, NULL, &gconf_error);
++	g_signal_connect (
++		html, "notify::hadjustment",
++		G_CALLBACK (hadjustment_notify_cb), NULL);
++
++	g_signal_connect (
++		html, "notify::vadjustment",
++		G_CALLBACK (vadjustment_notify_cb), NULL);
++
++	g_signal_connect (
++		html->priv->im_context, "commit",
++		G_CALLBACK (gtk_html_im_commit_cb), html);
++
++	g_signal_connect (
++		html->priv->im_context, "preedit_start",
++		G_CALLBACK (gtk_html_im_preedit_start_cb), html);
++
++	g_signal_connect (
++		html->priv->im_context, "preedit_changed",
++		G_CALLBACK (gtk_html_im_preedit_changed_cb), html);
++
++	g_signal_connect (
++		html->priv->im_context, "retrieve_surrounding",
++		G_CALLBACK (gtk_html_im_retrieve_surrounding_cb), html);
++
++	g_signal_connect (
++		html->priv->im_context, "delete_surrounding",
++		G_CALLBACK (gtk_html_im_delete_surrounding_cb), html);
++
++	html->priv->notify_monospace_font_id = gconf_client_notify_add (
++		gconf_client_get_default (),
++		"/desktop/gnome/interface/monospace_font_name",
++		client_notify_monospace_font, html, NULL, &gconf_error);
+ 
+ 	gtk_html_construct (html);
+ }
================================================================


More information about the pld-cvs-commit mailing list