? omf-install/Makefile.in
Index: lib/ephy-marshal.list
===================================================================
RCS file: /cvs/gnome/epiphany/lib/ephy-marshal.list,v
retrieving revision 1.3
diff -u -p -r1.3 ephy-marshal.list
--- lib/ephy-marshal.list	20 May 2003 11:46:25 -0000	1.3
+++ lib/ephy-marshal.list	4 Nov 2003 22:47:21 -0000
@@ -16,3 +16,4 @@ VOID:INT,INT,INT
 INT:OBJECT
 VOID:POINTER,POINTER
 VOID:FLOAT
+VOID:STRING,BOOLEAN
Index: src/ephy-location-action.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/ephy-location-action.c,v
retrieving revision 1.15
diff -u -p -r1.15 ephy-location-action.c
--- src/ephy-location-action.c	19 Oct 2003 13:54:59 -0000	1.15
+++ src/ephy-location-action.c	4 Nov 2003 22:47:21 -0000
@@ -24,6 +24,7 @@
 #include "ephy-shell.h"
 #include "ephy-completion-model.h"
 #include "ephy-debug.h"
+#include "ephy-marshal.h"
 
 #include <gtk/gtkentry.h>
 #include <gtk/gtkentrycompletion.h>
@@ -115,7 +116,7 @@ action_activated_cb (GtkEntryCompletion 
 			(action->priv->bookmarks, smart_url, content);
 		g_return_if_fail (url != NULL);
 
-		g_signal_emit (action, signals[GO_LOCATION], 0, url);
+		g_signal_emit (action, signals[GO_LOCATION], 0, url, FALSE); 
 
 		g_free (url);
 		g_free (content);
@@ -131,7 +132,7 @@ location_url_activate_cb (EphyLocationEn
 	content = gtk_editable_get_chars (GTK_EDITABLE(entry), 0, -1);
 	if (content)
 	{
-		g_signal_emit (action, signals[GO_LOCATION], 0, content);
+		g_signal_emit (action, signals[GO_LOCATION], 0, content, FALSE);
 		g_free (content);
 	}
 }
@@ -335,10 +336,11 @@ ephy_location_action_class_init (EphyLoc
                               G_SIGNAL_RUN_FIRST,
                               G_STRUCT_OFFSET (EphyLocationActionClass, go_location),
                               NULL, NULL,
-                              g_cclosure_marshal_VOID__STRING,
+                              ephy_marshal_VOID__STRING_BOOLEAN,
                               G_TYPE_NONE,
-                              1,
-			      G_TYPE_STRING);
+                              2,
+                              G_TYPE_STRING,
+                              G_TYPE_BOOLEAN);
 
 	g_object_class_install_property (object_class,
 					 PROP_ADDRESS,
Index: src/toolbar.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/toolbar.c,v
retrieving revision 1.70
diff -u -p -r1.70 toolbar.c
--- src/toolbar.c	27 Oct 2003 08:13:36 -0000	1.70
+++ src/toolbar.c	4 Nov 2003 22:47:21 -0000
@@ -122,9 +122,21 @@ toolbar_get_type (void)
 }
 
 static void
-go_location_cb (GtkAction *action, char *location, EphyWindow *window)
+go_location_cb (GtkAction *action, char *location, gboolean in_new, EphyWindow *window)
 {
-	ephy_window_load_url (window, location);
+	EphyTab *tab;
+	if (in_new == TRUE) 
+	{
+		tab = ephy_window_get_active_tab (window);
+		ephy_shell_new_tab (ephy_shell, window, tab,
+				    location,
+				    EPHY_NEW_TAB_OPEN_PAGE |
+				    EPHY_NEW_TAB_IN_EXISTING_WINDOW);
+	}
+	else
+	{
+		ephy_window_load_url (window, location);
+	}
 }
 
 static void
Index: src/bookmarks/ephy-bookmark-action.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/bookmarks/ephy-bookmark-action.c,v
retrieving revision 1.23
diff -u -p -r1.23 ephy-bookmark-action.c
--- src/bookmarks/ephy-bookmark-action.c	11 Oct 2003 17:41:25 -0000	1.23
+++ src/bookmarks/ephy-bookmark-action.c	4 Nov 2003 22:47:22 -0000
@@ -30,6 +30,7 @@
 #include "ephy-shell.h"
 #include "ephy-string.h"
 #include "ephy-debug.h"
+#include "ephy-marshal.h"
 
 #define MAX_LABEL_LENGTH 30
 
@@ -244,7 +245,7 @@ ephy_bookmark_action_sync_label (GtkActi
 }
 
 static void
-activate_cb (GtkWidget *widget, GtkAction *action)
+emit_go_location (GtkWidget *widget, GtkAction *action, gboolean in_new)
 {
 	char *location = NULL;
 	char *text = NULL;
@@ -291,12 +292,35 @@ activate_cb (GtkWidget *widget, GtkActio
 
 	g_signal_emit (action,
 		       ephy_bookmark_action_signals[GO_LOCATION],
-		       0, location);
+		       0, location, in_new);
 
 	g_free (location);
 	g_free (text);
 }
 
+static void
+activate_cb (GtkWidget *widget, GtkAction *action)
+{
+	emit_go_location (widget, action, FALSE);
+}
+
+static void
+button_press_cb (GtkWidget *widget, GdkEventButton *event, GtkAction *action)
+{
+	gboolean in_new = FALSE;
+
+	if (event->button == 2)	
+	{
+		in_new = TRUE;	
+	}
+	else if (event->button == 3)	
+	{
+		return;
+	}
+
+	emit_go_location (widget, action, in_new);
+}
+
 static gboolean
 create_menu_proxy (GtkToolItem *item, GtkAction *action)
 {
@@ -344,7 +368,8 @@ connect_proxy (GtkAction *action, GtkWid
 	if (GTK_IS_TOOL_ITEM (proxy))
 	{
 		button = GTK_WIDGET (g_object_get_data (G_OBJECT (proxy), "button"));
-		g_signal_connect (button, "clicked", G_CALLBACK (activate_cb), action);
+		g_signal_connect (button, "clicked", G_CALLBACK (activate_cb), action); 
+		g_signal_connect (button, "button-press-event", G_CALLBACK (button_press_cb), action);
 
 		entry = GTK_WIDGET (g_object_get_data (G_OBJECT (proxy), "entry"));
 		g_signal_connect (entry, "activate", G_CALLBACK (activate_cb), action);
@@ -442,10 +467,11 @@ ephy_bookmark_action_class_init (EphyBoo
                               G_SIGNAL_RUN_FIRST,
                               G_STRUCT_OFFSET (EphyBookmarkActionClass, go_location),
                               NULL, NULL,
-                              g_cclosure_marshal_VOID__STRING,
+                              ephy_marshal_VOID__STRING_BOOLEAN,
                               G_TYPE_NONE,
-                              1,
-			      G_TYPE_STRING);
+                              2,
+                              G_TYPE_STRING,
+                              G_TYPE_BOOLEAN);
 
 	g_object_class_install_property (object_class,
                                          PROP_BOOKMARK_ID,
Index: src/bookmarks/ephy-bookmarks-menu.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/bookmarks/ephy-bookmarks-menu.c,v
retrieving revision 1.18
diff -u -p -r1.18 ephy-bookmarks-menu.c
--- src/bookmarks/ephy-bookmarks-menu.c	2 Oct 2003 07:52:01 -0000	1.18
+++ src/bookmarks/ephy-bookmarks-menu.c	4 Nov 2003 22:47:22 -0000
@@ -112,7 +112,7 @@ ephy_bookmarks_menu_clean (EphyBookmarks
 }
 
 static void
-go_location_cb (GtkAction *action, char *location, EphyWindow *window)
+go_location_cb (GtkAction *action, char *location, gboolean in_new, EphyWindow *window)
 {
 	ephy_window_load_url (window, location);
 }
Index: src/bookmarks/ephy-topic-action.c
===================================================================
RCS file: /cvs/gnome/epiphany/src/bookmarks/ephy-topic-action.c,v
retrieving revision 1.32
diff -u -p -r1.32 ephy-topic-action.c
--- src/bookmarks/ephy-topic-action.c	10 Oct 2003 19:24:33 -0000	1.32
+++ src/bookmarks/ephy-topic-action.c	4 Nov 2003 22:47:22 -0000
@@ -33,6 +33,7 @@
 #include "ephy-debug.h"
 #include "ephy-gui.h"
 #include "ephy-string.h"
+#include "ephy-marshal.h"
 
 static void ephy_topic_action_init       (EphyTopicAction *action);
 static void ephy_topic_action_class_init (EphyTopicActionClass *class);
@@ -141,7 +142,7 @@ menu_activate_cb (GtkWidget *item, GtkAc
 	location = ephy_node_get_property_string
 		(node, EPHY_NODE_BMK_PROP_LOCATION);
 	g_signal_emit (action, ephy_topic_action_signals[GO_LOCATION],
-		       0, location);
+		       0, location, FALSE);
 }
 
 static void
@@ -591,10 +592,11 @@ ephy_topic_action_class_init (EphyTopicA
                               G_SIGNAL_RUN_FIRST,
                               G_STRUCT_OFFSET (EphyTopicActionClass, go_location),
                               NULL, NULL,
-                              g_cclosure_marshal_VOID__STRING,
+                              ephy_marshal_VOID__STRING_BOOLEAN,
                               G_TYPE_NONE,
-                              1,
-			      G_TYPE_STRING);
+                              2,
+                              G_TYPE_STRING,
+                              G_TYPE_BOOLEAN);
 
 	g_object_class_install_property (object_class,
                                          PROP_TOPIC_ID,
