Fix for gtkhtml
Tor Lillqvist <[email protected]>
| Newsgroups | gmane.comp.gnome.evolution.patches |
|---|---|
| Message-ID | <1141182080.2344.8.camel@pettson> |
kmaraas's recent change to gtkhtml.c broke it. This patch unbreaks it: -- Reinstate the function get_class_properties() (although I rename it to setup_class_properties() as its return value isn't used, it's needed only for side effect), and reinstate the call to setup_class_properties() in init_properties_widget(). -- Reinstate the next_uri() function which *is* used. -- Remove the known_protocols[] array, though, which is not used. (I still see the problem of #319407, this isn't related to that...) --tml _______________________________________________ Evolution-patches mailing list [email protected] http://mail.gnome.org/mailman/listinfo/evolution-patches
gtkhtml.c.diff
(text/x-patch, 2.7 KB)
? src/koe1.c
? src/libgtkhtml-3.8.pc
Index: src/gtkhtml.c
===================================================================
RCS file: /cvs/gnome/gtkhtml/src/gtkhtml.c,v
retrieving revision 1.616
diff -p -u -2 -r1.616 gtkhtml.c
--- src/gtkhtml.c 28 Feb 2006 20:51:54 -0000 1.616
+++ src/gtkhtml.c 1 Mar 2006 02:51:57 -0000
@@ -2317,4 +2317,39 @@ client_notify_spell_widget (GConfClient*
static void
+setup_class_properties (GtkHTML *html)
+{
+ GtkHTMLClass *klass;
+
+ klass = GTK_HTML_CLASS (GTK_WIDGET_GET_CLASS (html));
+ if (!klass->properties) {
+ klass->properties = gtk_html_class_properties_new (GTK_WIDGET (html));
+
+ if (!gconf_is_initialized ()) {
+ char *argv[] = { "gtkhtml", NULL };
+
+ g_warning ("gconf is not initialized, please call gconf_init before using GtkHTML library. "
+ "Meanwhile it's initialized by gtkhtml itself.");
+ gconf_init (1, argv, &gconf_error);
+ if (gconf_error)
+ g_error ("gconf error: %s\n", gconf_error->message);
+ }
+
+ gconf_client = gconf_client_get_default ();
+ if (!gconf_client)
+ g_error ("cannot create gconf_client\n");
+ gconf_client_add_dir (gconf_client, GTK_HTML_GCONF_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, &gconf_error);
+ if (gconf_error)
+ g_error ("gconf error: %s\n", gconf_error->message);
+ gconf_client_add_dir (gconf_client, GNOME_SPELL_GCONF_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, &gconf_error);
+ if (gconf_error)
+ g_error ("gconf error: %s\n", gconf_error->message);
+ gtk_html_class_properties_load (klass->properties, gconf_client);
+
+ if (gconf_error)
+ g_warning ("gconf error: %s\n", gconf_error->message);
+ }
+}
+
+static void
set_focus_child (GtkContainer *containter, GtkWidget *w)
{
@@ -2507,19 +2542,30 @@ drag_data_delete (GtkWidget *widget, Gdk
}
-static gchar *known_protocols [] = {
- "http://",
- "ftp://",
- "nntp://",
- "news://",
- "mailto:",
- "file:",
- NULL
-};
+static gchar *
+next_uri (guchar **uri_list, gint *len, gint *list_len)
+{
+ guchar *uri, *begin;
+
+ begin = *uri_list;
+ *len = 0;
+ while (**uri_list && **uri_list != '\n' && **uri_list != '\r' && *list_len) {
+ (*uri_list) ++;
+ (*len) ++;
+ (*list_len) --;
+ }
+
+ uri = g_strndup (begin, *len);
+
+ while ((!**uri_list || **uri_list == '\n' || **uri_list == '\r') && *list_len) {
+ (*uri_list) ++;
+ (*list_len) --;
+ }
+
+ return uri;
+}
static HTMLObject *
new_img_obj_from_uri (HTMLEngine *e, char *uri, char *title, gint len)
{
- gint i;
-
if (!strncmp (uri, "file:", 5)) {
if (!HTML_IS_PLAIN_PAINTER(e->painter)) {
@@ -3064,4 +3110,6 @@ static void
init_properties_widget (GtkHTML *html)
{
+ setup_class_properties (html);
+
if (!gconf_client)
gconf_client = gconf_client_get_default ();