Index: src/ephy-go-action.c
===================================================================
+++ src/ephy-go-action.c	2003-03-06 19:41:40.000000000 -0500
@@ -0,0 +1,121 @@
+/*
+ *  Copyright (C) 2003 Marco Pesenti Gritti
+ *  Copyright (C) 2003 David Bordoley
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2, or (at your option)
+ *  any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "ephy-go-action.h"
+
+#include <libgnome/gnome-i18n.h>
+#include "eggtoolitem.h"
+#include "ephy-debug.h"
+
+static void ephy_go_action_init       (EphyGoAction *action);
+static void ephy_go_action_class_init (EphyGoActionClass *class);
+static void ephy_go_action_finalize   (GObject *object);
+
+static GObjectClass *parent_class = NULL;
+
+GType
+ephy_go_action_get_type (void)
+{
+	static GType type = 0;
+
+	if (!type)
+	{
+		static const GTypeInfo type_info =
+		{
+			sizeof (EphyGoActionClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) ephy_go_action_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL,
+			sizeof (EphyGoAction),
+			0, /* n_preallocs */
+			(GInstanceInitFunc) ephy_go_action_init,
+		};
+
+		type = g_type_register_static (EGG_TYPE_ACTION,
+					       "EphyGoAction",
+					       &type_info, 0);
+	}
+	return type;
+}
+
+static void
+button_clicked (GtkWidget *widget, EggAction *action)
+{
+	g_signal_emit_by_name (action, "activate");
+}
+
+static GtkWidget *
+create_tool_item (EggAction *action)
+{
+	GtkWidget *button;
+	GtkWidget *item;
+
+	item = GTK_WIDGET (egg_tool_item_new ());
+
+	button = gtk_button_new_with_label (N_("Go"));
+	gtk_button_set_relief(GTK_BUTTON (button), GTK_RELIEF_NONE);
+	
+	g_signal_connect (G_OBJECT (button), "clicked",
+                          G_CALLBACK (button_clicked), action);
+
+	gtk_container_add (GTK_CONTAINER (item), button);
+	gtk_widget_show (button);
+
+	return item;
+}
+
+static void
+ephy_go_action_class_init (EphyGoActionClass *class)
+{
+	EggActionClass *action_class;
+	GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+	object_class->finalize = ephy_go_action_finalize;
+
+	parent_class = g_type_class_peek_parent (class);
+	action_class = EGG_ACTION_CLASS (class);
+
+	/*Is this needed marco?*/
+	action_class->toolbar_item_type = GTK_TYPE_BUTTON;
+	
+	action_class->create_tool_item = create_tool_item;
+
+}
+
+static void
+ephy_go_action_init (EphyGoAction *action)
+{
+}
+
+static void
+ephy_go_action_finalize (GObject *object)
+{
+	EphyGoAction *action;
+
+	g_return_if_fail (EPHY_IS_GO_ACTION (object));
+
+	action = EPHY_GO_ACTION (object);
+
+	g_free (action->priv);
+
+	LOG ("Go action finalized")
+
+	G_OBJECT_CLASS (parent_class)->finalize (object);
+}



Index: src/ephy-go-action.h
===================================================================
+++ src/ephy-go-action.h	2003-03-03 11:15:20.000000000 -0500
@@ -0,0 +1,49 @@
+/*
+ *  Copyright (C) 2003 Marco Pesenti Gritti
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2, or (at your option)
+ *  any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef EPHY_GO_ACTION_H
+#define EPHY_GO_ACTION_H
+
+#include <gtk/gtk.h>
+#include <egg-action.h>
+
+#define EPHY_TYPE_GO_ACTION            (ephy_go_action_get_type ())
+#define EPHY_GO_ACTION(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), EPHY_TYPE_GO_ACTION, EphyGoAction))
+#define EPHY_GO_ACTION_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), EPHY_TYPE_GO_ACTION, EphyGoActionClass))
+#define EPHY_IS_GO_ACTION(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EPHY_TYPE_GO_ACTION))
+#define EPHY_IS_GO_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EPHY_TYPE_GO_ACTION))
+#define EPHY_GO_ACTION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), EPHY_TYPE_GO_ACTION, EphyGoActionClass))
+
+typedef struct _EphyGoAction      EphyGoAction;
+typedef struct _EphyGoActionClass EphyGoActionClass;
+typedef struct EphyGoActionPrivate EphyGoActionPrivate;
+
+struct _EphyGoAction
+{
+	EggAction parent;
+	EphyGoActionPrivate *priv;
+};
+
+struct _EphyGoActionClass
+{
+	EggActionClass parent_class;
+};
+
+GType    ephy_go_action_get_type   (void);
+
+#endif

Index: data/ui/epiphany-toolbar.xml.in
===================================================================
RCS file: /cvs/gnome/epiphany/data/ui/epiphany-toolbar.xml.in,v
retrieving revision 1.8
diff -u -p -r1.8 epiphany-toolbar.xml.in
--- data/ui/epiphany-toolbar.xml.in	16 Feb 2003 05:49:53 -0000	1.8
+++ data/ui/epiphany-toolbar.xml.in	7 Mar 2003 00:38:14 -0000
@@ -19,7 +19,7 @@
 	<toolitem verb="Favicon"/>
 	<toolitem verb="Location"/>
 	<toolitem verb="Spinner"/>
-	<toolitem verb="LoadLocation"/>
+	<toolitem verb="Go"/>
 </available>
 <default>
 <toolbar>
Index: src/Makefile.am
===================================================================
RCS file: /cvs/gnome/epiphany/src/Makefile.am,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile.am
--- src/Makefile.am	24 Jan 2003 14:48:29 -0000	1.6
+++ src/Makefile.am	7 Mar 2003 00:38:21 -0000
@@ -50,6 +50,8 @@ epiphany_SOURCES = 				    	\
 	ephy-encoding-menu.h				\
 	ephy-favicon-action.c				\
 	ephy-favicon-action.h				\
+	ephy-go-action.c				\
+	ephy-go-action.h				\
 	ephy-favorites-menu.c				\
 	ephy-favorites-menu.h				\
 	ephy-history-model.c				\
Index: src/ephy-window.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/ephy-window.c,v
retrieving revision 1.32
diff -u -p -r1.32 ephy-window.c
--- src/ephy-window.c	26 Feb 2003 23:09:25 -0000	1.32
+++ src/ephy-window.c	7 Mar 2003 00:38:29 -0000
@@ -197,11 +197,6 @@ static EggActionGroupEntry ephy_menu_ent
 	{ "HelpAbout", N_("_About"), GNOME_STOCK_ABOUT, NULL,
 	  N_("Display credits for the web browser creators"),
 	  G_CALLBACK (window_cmd_help_about), NULL },
-
-	/* Toolbar only */
-	{ "LoadLocation", N_("_Go"), GTK_STOCK_JUMP_TO, NULL,
-	  N_("Type a web address or a word in the field on the left, then click Go"),
-	  G_CALLBACK (window_cmd_load_location), NULL },
 };
 static guint ephy_menu_n_entries = G_N_ELEMENTS (ephy_menu_entries);
 
Index: src/toolbar.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/toolbar.c,v
retrieving revision 1.19
diff -u -p -r1.19 toolbar.c
--- src/toolbar.c	23 Feb 2003 02:20:51 -0000	1.19
+++ src/toolbar.c	7 Mar 2003 00:38:32 -0000
@@ -27,6 +27,7 @@
 #include "ephy-spinner-action.h"
 #include "ephy-location-action.h"
 #include "ephy-favicon-action.h"
+#include "ephy-go-action.h"
 #include "ephy-navigation-action.h"
 #include "ephy-bookmark-action.h"
 #include "window-commands.h"
@@ -70,6 +71,7 @@ struct ToolbarPrivate
 	GtkWidget *location_entry;
 	GtkWidget *spinner;
 	GtkWidget *favicon;
+	GtkWidget *go;
 };
 
 GType
@@ -321,6 +323,15 @@ toolbar_setup_actions (Toolbar *t)
 			       "label", "Favicon",
 			       "window", t->priv->window,
 			       NULL);
+	egg_action_group_add_action (t->priv->action_group, action);
+	g_object_unref (action);
+
+	action = g_object_new (EPHY_TYPE_GO_ACTION,
+			       "name", "Go",
+			       "label", "Go",
+			       NULL);
+	g_signal_connect (action, "activate",
+			  G_CALLBACK (window_cmd_load_location), t->priv->window);
 	egg_action_group_add_action (t->priv->action_group, action);
 	g_object_unref (action);
 }
