aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-navigation-action.c
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-12-24 08:21:16 +0800
committerChristian Persch <chpe@src.gnome.org>2004-12-24 08:21:16 +0800
commitd127ec47856ee69466b909af12e5f1020a12cb15 (patch)
treee8c6dcbd55f1b143983b73878a9177883ac352e6 /src/ephy-navigation-action.c
parent93079ee8ea5a7a2e89d4842c9c4cad71724a99f4 (diff)
downloadgsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.gz
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.bz2
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.lz
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.xz
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.tar.zst
gsoc2013-epiphany-d127ec47856ee69466b909af12e5f1020a12cb15.zip
A src/ephy-home-action.c: (ephy_home_action_activate),
2004-12-24 Christian Persch <chpe@cvs.gnome.org> * lib/ephy-marshal.list: * src/Makefile.am: * src/bookmarks/ephy-bookmark-action.c: (ephy_bookmark_action_get_type), (create_tool_item), (open_in_tab_activate_cb), (open_in_window_activate_cb), (activate_cb), (connect_proxy), (ephy_bookmark_action_class_init): * src/bookmarks/ephy-bookmark-action.h: * src/bookmarks/ephy-bookmarks-menu.c: (ephy_bookmarks_menu_get_type), (add_action_for_bookmark), (ephy_bookmarks_menu_class_init): * src/bookmarks/ephy-bookmarks-menu.h: * src/bookmarks/ephy-bookmarksbar.c: (ephy_bookmarksbar_get_type), (ephy_bookmarksbar_action_request): * src/bookmarks/ephy-favorites-menu.c: (ephy_favorites_menu_get_type), (ephy_favorites_menu_rebuild): * src/bookmarks/ephy-favorites-menu.h: * src/bookmarks/ephy-topic-action.c: (ephy_topic_action_get_type), (menu_activate_cb), (open_in_tabs_activate_cb), (ephy_topic_action_class_init): * src/bookmarks/ephy-topic-action.h: A src/ephy-home-action.c: (ephy_home_action_activate), (ephy_home_action_class_init), (ephy_home_action_get_type): A src/ephy-home-action.h: A src/ephy-link-action.c: (ephy_link_action_get_type): A src/ephy-link-action.h: A src/ephy-link.c: (ephy_link_flags_get_type), (ephy_link_base_init), (ephy_link_get_type), (ephy_link_open): A src/ephy-link.h: * src/ephy-location-action.c: (ephy_location_action_get_type), (action_activated_cb), (location_url_activate_cb), (connect_proxy), (disconnect_proxy), (ephy_location_action_class_init): * src/ephy-location-action.h: * src/ephy-navigation-action.c: (ephy_navigation_action_get_type), (activate_back_or_forward_menu_item_cb), (activate_up_menu_item_cb), (build_back_or_forward_menu), (build_up_menu): * src/ephy-navigation-action.h: * src/ephy-shell.c: (ephy_shell_new_tab): * src/ephy-window.c: (setup_ui_manager), (open_link_cb), (ephy_window_init): * src/toolbar.c: (toolbar_get_type), (toolbar_setup_actions): * src/window-commands.c: * src/window-commands.h: Consolidate link opening in one place by introducing an EphyLink interface which bookmarks, topics, navigation, location, home, toolbars, bookmarks menu and favourites menu implement, forwarding the link opening to the window.
Diffstat (limited to 'src/ephy-navigation-action.c')
-rw-r--r--src/ephy-navigation-action.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/ephy-navigation-action.c b/src/ephy-navigation-action.c
index 0e166f506..61300aa93 100644
--- a/src/ephy-navigation-action.c
+++ b/src/ephy-navigation-action.c
@@ -1,5 +1,6 @@
/*
- * Copyright (C) 2003 Marco Pesenti Gritti
+ * Copyright (C) 2003, 2004 Marco Pesenti Gritti
+ * Copyright (C) 2003, 2004 Christian Persch
*
* 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
@@ -25,6 +26,8 @@
#include "ephy-favicon-cache.h"
#include "ephy-history.h"
#include "ephy-embed-shell.h"
+#include "ephy-link.h"
+#include "ephy-gui.h"
#include "ephy-debug.h"
#include <gtk/gtklabel.h>
@@ -81,7 +84,7 @@ ephy_navigation_action_get_type (void)
(GInstanceInitFunc) ephy_navigation_action_init,
};
- type = g_type_register_static (GTK_TYPE_ACTION,
+ type = g_type_register_static (EPHY_TYPE_LINK_ACTION,
"EphyNavigationAction",
&type_info, 0);
}
@@ -133,12 +136,12 @@ new_history_menu_item (const char *origtext,
static void
activate_back_or_forward_menu_item_cb (GtkWidget *menuitem,
- EphyWindow *window)
+ EphyNavigationAction *action)
{
EphyEmbed *embed;
int go_nth;
- embed = ephy_window_get_active_embed (window);
+ embed = ephy_window_get_active_embed (action->priv->window);
g_return_if_fail (embed != NULL);
go_nth = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menuitem), NTH_DATA_KEY));
@@ -148,18 +151,19 @@ activate_back_or_forward_menu_item_cb (GtkWidget *menuitem,
static void
activate_up_menu_item_cb (GtkWidget *menuitem,
- EphyWindow *window)
+ EphyNavigationAction *action)
{
EphyEmbed *embed;
char *url;
- embed = ephy_window_get_active_embed (window);
+ embed = ephy_window_get_active_embed (action->priv->window);
g_return_if_fail (embed != NULL);
url = g_object_get_data (G_OBJECT (menuitem), URL_DATA_KEY);
g_return_if_fail (url != NULL);
- ephy_window_load_url (window, url);
+ ephy_link_open (EPHY_LINK (action), url, NULL,
+ ephy_gui_is_middle_click () ? EPHY_LINK_NEW_TAB : 0);
}
static GtkWidget *
@@ -207,7 +211,7 @@ build_back_or_forward_menu (EphyNavigationAction *action)
GINT_TO_POINTER (start));
g_signal_connect (item, "activate",
G_CALLBACK (activate_back_or_forward_menu_item_cb),
- window);
+ action);
gtk_menu_shell_append (menu, item);
gtk_widget_show_all (item);
@@ -256,7 +260,7 @@ build_up_menu (EphyNavigationAction *action)
g_object_set_data_full (G_OBJECT (item), URL_DATA_KEY, url,
(GDestroyNotify) g_free);
g_signal_connect (item, "activate",
- G_CALLBACK (activate_up_menu_item_cb), window);
+ G_CALLBACK (activate_up_menu_item_cb), action);
gtk_menu_shell_append (menu, item);
gtk_widget_show (item);