diff options
Diffstat (limited to 'src/bookmarks/ephy-bookmark-action.c')
-rw-r--r-- | src/bookmarks/ephy-bookmark-action.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/src/bookmarks/ephy-bookmark-action.c b/src/bookmarks/ephy-bookmark-action.c index 21b094bae..2b44f1a5a 100644 --- a/src/bookmarks/ephy-bookmark-action.c +++ b/src/bookmarks/ephy-bookmark-action.c @@ -27,6 +27,7 @@ #include <gtk/gtktoolitem.h> #include "ephy-bookmark-action.h" +#include "ephy-marshal.h" #include "ephy-dnd.h" #include "ephy-bookmarksbar.h" #include "ephy-bookmarks.h" @@ -34,6 +35,7 @@ #include "ephy-shell.h" #include "ephy-string.h" #include "ephy-debug.h" +#include "ephy-gui.h" #include <string.h> @@ -75,7 +77,8 @@ enum enum { - GO_LOCATION, + OPEN, + OPEN_IN_TAB, LAST_SIGNAL }; @@ -342,7 +345,14 @@ activate_cb (GtkWidget *widget, GtkAction *action) } } - g_signal_emit (action, signals[GO_LOCATION], 0, location); + if (ephy_gui_is_middle_click ()) + { + g_signal_emit (action, signals[OPEN_IN_TAB], 0, location, FALSE); + } + else + { + g_signal_emit (action, signals[OPEN], 0, location); + } g_free (location); g_free (text); @@ -580,17 +590,29 @@ ephy_bookmark_action_class_init (EphyBookmarkActionClass *class) object_class->set_property = ephy_bookmark_action_set_property; object_class->get_property = ephy_bookmark_action_get_property; - signals[GO_LOCATION] = - g_signal_new ("go_location", + signals[OPEN] = + g_signal_new ("open", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EphyBookmarkActionClass, go_location), + G_STRUCT_OFFSET (EphyBookmarkActionClass, open), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); + signals[OPEN_IN_TAB] = + g_signal_new ("open_in_tab", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (EphyBookmarkActionClass, open_in_tab), + NULL, NULL, + ephy_marshal_VOID__STRING_BOOLEAN, + G_TYPE_NONE, + 2, + G_TYPE_STRING, + G_TYPE_BOOLEAN); + g_object_class_install_property (object_class, PROP_BOOKMARK_ID, g_param_spec_int ("bookmark_id", |