Index: ephy-statusbar.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/ephy-statusbar.c,v
retrieving revision 1.4
diff -u -p -r1.4 ephy-statusbar.c
--- ephy-statusbar.c	1 May 2004 16:07:34 -0000	1.4
+++ ephy-statusbar.c	1 May 2004 17:44:18 -0000
@@ -33,6 +33,7 @@
 #include <gtk/gtkeventbox.h>
 #include <gtk/gtkimage.h>
 #include <gtk/gtkframe.h>
+#include <gtk/gtkwidget.h>
 
 static void ephy_statusbar_class_init	(EphyStatusbarClass *klass);
 static void ephy_statusbar_init		(EphyStatusbar *t);
@@ -47,6 +48,7 @@ struct EphyStatusbarPrivate
 	GtkWidget *security_icon;
 	GtkWidget *progressbar;
 	GtkWidget *security_evbox;
+	GtkWidget *icon_container;
 };
 
 GType
@@ -109,7 +111,7 @@ create_statusbar_security_icon (EphyStat
 
 	gtk_widget_show_all (s->security_frame);
 
-	gtk_box_pack_end (GTK_BOX (s),
+	gtk_box_pack_end (GTK_BOX (s->priv->icon_container),
 			  GTK_WIDGET (s->security_frame),
 			  FALSE, TRUE, 0);
 }
@@ -123,6 +125,30 @@ create_statusbar_progress (EphyStatusbar
 	gtk_box_pack_start (GTK_BOX (s),
 			    GTK_WIDGET (s->priv->progressbar),
 			    FALSE, TRUE, 0);
+	gtk_box_reorder_child (GTK_BOX (s), s->priv->progressbar, 1);
+}
+
+static void
+sync_shadow_type (EphyStatusbar *statusbar,
+		  GParamSpec *pspec,
+		  gpointer dummy)
+{
+	GtkShadowType shadow;
+	GList *children, *l;
+
+	gtk_widget_style_get (GTK_WIDGET (statusbar), "shadow-type",
+			      &shadow, NULL);
+
+	children = gtk_container_get_children
+		(GTK_CONTAINER (statusbar->priv->icon_container));
+	for (l = children; l != NULL; l = l->next)
+	{
+		if (GTK_IS_FRAME (l->data))
+		{
+			gtk_frame_set_shadow_type (GTK_FRAME (l->data), shadow);
+		}
+	}
+	g_list_free (children);
 }
 
 static void
@@ -134,10 +160,19 @@ ephy_statusbar_init (EphyStatusbar *t)
 	g_object_ref (G_OBJECT (t->tooltips));
 	gtk_object_sink (GTK_OBJECT (t->tooltips));
 
-	gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (t), FALSE);
+	t->priv->icon_container = gtk_hbox_new (FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (t), t->priv->icon_container, FALSE, FALSE, 0);
+	gtk_box_reorder_child (GTK_BOX (t), t->priv->icon_container, 0);
+	gtk_widget_show (t->priv->icon_container);
+
+	gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (t), TRUE);
 
 	create_statusbar_progress (t);
 	create_statusbar_security_icon (t);
+
+	sync_shadow_type (t, NULL, NULL);
+	g_signal_connect (t, "notify::shadow-type",
+			  G_CALLBACK (sync_shadow_type), NULL);
 }
 
 static void
@@ -228,5 +263,15 @@ ephy_statusbar_add_widget (EphyStatusbar
 	g_return_if_fail (EPHY_IS_STATUSBAR (statusbar));
 	g_return_if_fail (GTK_IS_WIDGET (widget));
 
-	gtk_box_pack_start (GTK_BOX (statusbar), widget, FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (statusbar->priv->icon_container),
+			    widget, FALSE, FALSE, 0);
+
+	if (GTK_IS_FRAME (widget))
+	{
+		GtkShadowType shadow;
+
+		gtk_widget_style_get (GTK_WIDGET (statusbar), "shadow-type",
+				      &shadow, NULL);
+		gtk_frame_set_shadow_type (GTK_FRAME (widget), shadow);
+	}
 }
