Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/galeon/ChangeLog,v
retrieving revision 1.3602
diff -u -r1.3602 ChangeLog
--- ChangeLog	8 May 2003 18:27:38 -0000	1.3602
+++ ChangeLog	18 May 2003 12:55:52 -0000
@@ -1,3 +1,10 @@
+2003-05-18  Malcolm Tredinnick <malcolm@commsecure.com.au>
+
+	* embed/galeon-embed-prefs.h
+	* mozilla/mozilla-notifiers.cpp: Process the
+	/system/http_proxy/ignore_hosts gconf key and pass
+	the hosts which do not use the proxy to gtkmozembed.
+
 2004-05-08  Philip Langdale  <philipl@mail.utexas.edu>
 
 	* ui/galeon-ui.xml.in: Added tooltip for Quit menu item.
Index: embed/galeon-embed-prefs.h
===================================================================
RCS file: /cvs/gnome/galeon/embed/galeon-embed-prefs.h,v
retrieving revision 1.6
diff -u -r1.6 galeon-embed-prefs.h
--- embed/galeon-embed-prefs.h	15 Mar 2003 17:53:21 -0000	1.6
+++ embed/galeon-embed-prefs.h	18 May 2003 12:55:58 -0000
@@ -58,4 +58,5 @@
 #define CONF_NETWORK_FTP_PROXY_PORT "/system/proxy/ftp_port"
 #define CONF_NETWORK_SOCKS_PROXY_PORT "/system/proxy/socks_port"
 #define CONF_NETWORK_PROXY_AUTO_URL "/system/proxy/autoconfig_url"
+#define CONF_NETWORK_PROXY_IGNORE_HOSTS "/system/http_proxy/ignore_hosts"
 
Index: mozilla/mozilla-notifiers.cpp
===================================================================
RCS file: /cvs/gnome/galeon/mozilla/mozilla-notifiers.cpp,v
retrieving revision 1.15
diff -u -r1.15 mozilla-notifiers.cpp
--- mozilla/mozilla-notifiers.cpp	6 Mar 2003 21:18:00 -0000	1.15
+++ mozilla/mozilla-notifiers.cpp	18 May 2003 12:56:00 -0000
@@ -100,6 +100,13 @@
 			     guint cnxn_id,
 			     GConfEntry *entry,
 			     char *pref);
+
+static void
+mozilla_proxy_ignore_notifier (GConfClient *client,
+			     guint cnxn_id,
+			     GConfEntry *entry,
+			     char *pref);
+
 static void
 mozilla_proxy_autoconfig_notifier (GConfClient *client,
 			           guint cnxn_id,
@@ -223,6 +230,8 @@
 	  (GConfClientNotifyFunc) mozilla_proxy_mode_notifier },
 	{ CONF_NETWORK_PROXY_AUTO_URL,
 	  (GConfClientNotifyFunc) mozilla_proxy_autoconfig_notifier },
+	{ CONF_NETWORK_PROXY_IGNORE_HOSTS,
+	  (GConfClientNotifyFunc) mozilla_proxy_ignore_notifier },
 	{NULL, NULL}
 };
 
@@ -260,6 +269,38 @@
 	}
 
 	mozilla_prefs_set_int ("network.proxy.type", mozilla_mode);
+}
+
+static void
+mozilla_proxy_ignore_notifier (GConfClient *client,
+		             guint cnxn_id,
+		             GConfEntry *entry,
+		             char *pref)
+{
+	GSList *hosts, *pos;
+	gchar **strings, *mozilla_ignore_list;
+	int i;
+
+	hosts = gconf_value_get_list (entry->value);
+	if (!hosts)
+	{
+		return;
+	}
+
+	strings = g_new (gchar*, g_slist_length (hosts) + 1);
+	for (pos = hosts, i = 0; pos; pos = g_slist_next (pos), ++i)
+	{
+		strings[i] = (gchar*) gconf_value_get_string (
+				(GConfValue*) (pos->data));
+	}
+	strings[i] = NULL;
+
+	mozilla_ignore_list = g_strjoinv (", ", strings);
+	mozilla_prefs_set_string ("network.proxy.no_proxies_on",
+			mozilla_ignore_list);
+
+	g_free (mozilla_ignore_list);
+	g_free (strings);
 }
 
 static void
