? lib/widgets/testspinner
Index: lib/widgets/ephy-location-entry.c
===================================================================
RCS file: /cvs/gnome/epiphany/lib/widgets/ephy-location-entry.c,v
retrieving revision 1.76
diff -p -u -u -p -r1.76 ephy-location-entry.c
--- lib/widgets/ephy-location-entry.c	10 Jul 2006 19:23:43 -0000	1.76
+++ lib/widgets/ephy-location-entry.c	12 Jul 2006 19:30:49 -0000
@@ -110,6 +110,7 @@ static const GdkColor fallback_bg_colour
 
 static void ephy_location_entry_class_init (EphyLocationEntryClass *klass);
 static void ephy_location_entry_init (EphyLocationEntry *le);
+static gboolean ephy_location_entry_reset_internal (EphyLocationEntry *, gboolean);
 
 static GObjectClass *parent_class = NULL;
 
@@ -385,7 +386,7 @@ entry_key_press_cb (GtkEntry *entry,
 
 	if (event->keyval == GDK_Escape && state == 0)
 	{
-		ephy_location_entry_reset (lentry);
+		ephy_location_entry_reset_internal (lentry, TRUE);
 		/* don't return TRUE since we want to cancel the autocompletion popup too */
 	}
 
@@ -426,7 +427,7 @@ entry_activate_after_cb (GtkEntry *entry
 
 	if (priv->needs_reset)
 	{
-		ephy_location_entry_reset (lentry);
+		ephy_location_entry_reset_internal (lentry, TRUE);
 		priv->needs_reset = FALSE;
 	}
 }
@@ -552,7 +553,7 @@ action_activated_after_cb (GtkEntryCompl
 	     state == (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) ||
 	    button == 2)
 	{
-		ephy_location_entry_reset (lentry);
+		ephy_location_entry_reset_internal (lentry, TRUE);
 	}
 }
 
@@ -1082,8 +1083,9 @@ ephy_location_entry_get_location (EphyLo
 	return gtk_entry_get_text (GTK_ENTRY (priv->icon_entry->entry));
 }
 
-gboolean
-ephy_location_entry_reset (EphyLocationEntry *entry)
+static gboolean
+ephy_location_entry_reset_internal (EphyLocationEntry *entry,
+				    gboolean notify)
 {
 	EphyLocationEntryPrivate *priv = entry->priv;
 	const char *text, *old_text;
@@ -1100,7 +1102,18 @@ ephy_location_entry_reset (EphyLocationE
 	ephy_location_entry_set_location (entry, text, NULL);
 	g_free (url);
 
+	if (notify)
+	{
+		g_signal_emit (entry, signals[USER_CHANGED], 0);
+	}
+
 	return retval;
+}
+
+gboolean
+ephy_location_entry_reset (EphyLocationEntry *entry)
+{
+	return ephy_location_entry_reset_internal (entry, FALSE);
 }
 
 void
Index: lib/widgets/ephy-spinner.c
===================================================================
RCS file: /cvs/gnome/epiphany/lib/widgets/ephy-spinner.c,v
retrieving revision 1.39
diff -p -u -u -p -r1.39 ephy-spinner.c
--- lib/widgets/ephy-spinner.c	29 Oct 2005 14:21:24 -0000	1.39
+++ lib/widgets/ephy-spinner.c	12 Jul 2006 19:30:50 -0000
@@ -92,38 +92,7 @@ struct _EphySpinnerCachePrivate
 	GHashTable *hash;
 };
 
-static void ephy_spinner_cache_class_init (EphySpinnerCacheClass *klass);
-static void ephy_spinner_cache_init	  (EphySpinnerCache *cache);
-
-static GObjectClass *cache_parent_class = NULL;
-
-static GType
-ephy_spinner_cache_get_type (void)
-{
-	static GType type = 0;
-
-	if (G_UNLIKELY (type == 0))
-	{
-		static const GTypeInfo our_info =
-		{
-			sizeof (EphySpinnerCacheClass),
-			NULL,
-			NULL,
-			(GClassInitFunc) ephy_spinner_cache_class_init,
-			NULL,
-			NULL,
-			sizeof (EphySpinnerCache),
-			0,
-			(GInstanceInitFunc) ephy_spinner_cache_init
-		};
-
-		type = g_type_register_static (G_TYPE_OBJECT,
-					       "EphySpinnerCache",
-					       &our_info, 0);
-	}
-
-	return type;
-}
+/* EphySpinnerImages */
 
 static void
 ephy_spinner_images_free (EphySpinnerImages *images)
@@ -153,6 +122,12 @@ ephy_spinner_images_copy (EphySpinnerIma
 	return copy;
 }
 
+/* EphySpinnerCache implementation */
+
+GType ephy_spinner_cache_get_type (void);
+
+G_DEFINE_TYPE (EphySpinnerCache, ephy_spinner_cache, G_TYPE_OBJECT);
+
 static void
 ephy_spinner_cache_data_unload (EphySpinnerCacheData *data)
 {
@@ -193,7 +168,7 @@ ephy_spinner_cache_data_load (EphySpinne
 	EphySpinnerImages *images;
 	GdkPixbuf *icon_pixbuf, *pixbuf;
 	GtkIconInfo *icon_info;
-	int grid_width, grid_height, x, y, size, h, w;
+	int grid_width, grid_height, x, y, size, h, w, isw, ish;
 	const char *icon;
 
 	g_return_if_fail (data != NULL);
@@ -204,9 +179,21 @@ ephy_spinner_cache_data_load (EphySpinne
 
 	START_PROFILER ("loading spinner animation")
 
+	gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (data->screen),
+					   GTK_ICON_SIZE_DIALOG,
+					   &isw, &ish);
+
 	/* Load the animation */
 	icon_info = gtk_icon_theme_lookup_icon (data->icon_theme,
-						"gnome-spinner", -1, 0);
+						"animations_process-working", isw, 0);
+	if (icon_info == NULL)
+	{
+		g_warning ("Falling back to old spinner!");
+		/* Try to fall back to old spinner */
+		icon_info = gtk_icon_theme_lookup_icon (data->icon_theme,
+							"gnome-spinner", -1, 0);
+	}
+
 	if (icon_info == NULL)
 	{
 		STOP_PROFILER ("loading spinner animation")
@@ -265,7 +252,14 @@ ephy_spinner_cache_data_load (EphySpinne
 
 	/* Load the rest icon */
 	icon_info = gtk_icon_theme_lookup_icon (data->icon_theme,
-						"gnome-spinner-rest", -1, 0);
+						"animations_process-idle", isw, 0);
+	if (icon_info == NULL)
+	{
+		g_warning ("Falling back to old spinner idle image!");
+		/* Try to fall back to old spinner */
+		icon_info = gtk_icon_theme_lookup_icon (data->icon_theme,
+							"gnome-spinner-rest", -1, 0);
+	}
 	if (icon_info == NULL)
 	{
 		STOP_PROFILER ("loading spinner animation")
@@ -467,7 +461,7 @@ ephy_spinner_cache_finalize (GObject *ob
 
 	g_hash_table_destroy (priv->hash);
 
-	G_OBJECT_CLASS (cache_parent_class)->finalize (object);
+	G_OBJECT_CLASS (ephy_spinner_cache_parent_class)->finalize (object);
 }
 
 static void
@@ -475,7 +469,7 @@ ephy_spinner_cache_class_init (EphySpinn
 {
 	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-	cache_parent_class = g_type_class_peek_parent (klass);
+	ephy_spinner_cache_parent_class = g_type_class_peek_parent (klass);
 
 	object_class->finalize = ephy_spinner_cache_finalize;
 
Index: lib/widgets/testspinner.c
===================================================================
RCS file: /cvs/gnome/epiphany/lib/widgets/testspinner.c,v
retrieving revision 1.1
diff -p -u -u -p -r1.1 testspinner.c
--- lib/widgets/testspinner.c	2 Oct 2005 13:56:48 -0000	1.1
+++ lib/widgets/testspinner.c	12 Jul 2006 19:30:50 -0000
@@ -1,3 +1,5 @@
+/* gcc `pkg-config --libs --cflags gtk+-2.0` -o testspinner testspinner.c */
+
 /*
  * Copyright (C) 2005 Christian Persch
  *
