aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-notebook.c
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-12-24 21:49:33 +0800
committerChristian Persch <chpe@src.gnome.org>2004-12-24 21:49:33 +0800
commit57975a3760911acf0e7153d2955ad1640f110df6 (patch)
treec4f84ace48187f4fab55382a9328cd5ce30c7bea /src/ephy-notebook.c
parentacfb18598072007d69bf4eaca299737542904dfe (diff)
downloadgsoc2013-epiphany-57975a3760911acf0e7153d2955ad1640f110df6.tar.gz
gsoc2013-epiphany-57975a3760911acf0e7153d2955ad1640f110df6.tar.zst
gsoc2013-epiphany-57975a3760911acf0e7153d2955ad1640f110df6.zip
Remove obsolete ephy_window_load_in_tabs() and use generic link opening
2004-12-24 Christian Persch <chpe@cvs.gnome.org> * src/ephy-notebook.c: (ephy_notebook_get_type), (notebook_drag_data_received_cb): * src/ephy-window.c: (open_link_cb), (ephy_window_init), (ephy_window_set_zoom): * src/ephy-window.h: Remove obsolete ephy_window_load_in_tabs() and use generic link opening framework instead.
Diffstat (limited to 'src/ephy-notebook.c')
-rw-r--r--src/ephy-notebook.c53
1 files changed, 35 insertions, 18 deletions
diff --git a/src/ephy-notebook.c b/src/ephy-notebook.c
index e37e3cb7f..fe10ca09b 100644
--- a/src/ephy-notebook.c
+++ b/src/ephy-notebook.c
@@ -32,9 +32,10 @@
#include "ephy-embed.h"
#include "ephy-window.h"
#include "ephy-shell.h"
-#include "ephy-debug.h"
#include "ephy-favicon-cache.h"
#include "ephy-spinner.h"
+#include "ephy-link.h"
+#include "ephy-debug.h"
#include <glib-object.h>
#include <gtk/gtkeventbox.h>
@@ -56,6 +57,8 @@
#define AFTER_ALL_TABS -1
#define NOT_IN_APP_WINDOWS -2
+#define INSANE_NUMBER_OF_URLS 20
+
#define EPHY_NOTEBOOK_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_NOTEBOOK, EphyNotebookPrivate))
struct EphyNotebookPrivate
@@ -103,11 +106,11 @@ static GObjectClass *parent_class = NULL;
GType
ephy_notebook_get_type (void)
{
- static GType type = 0;
+ static GType type = 0;
- if (G_UNLIKELY (type == 0))
- {
- static const GTypeInfo our_info =
+ if (G_UNLIKELY (type == 0))
+ {
+ static const GTypeInfo our_info =
{
sizeof (EphyNotebookClass),
NULL, /* base_init */
@@ -120,12 +123,22 @@ ephy_notebook_get_type (void)
(GInstanceInitFunc) ephy_notebook_init
};
- type = g_type_register_static (GTK_TYPE_NOTEBOOK,
- "EphyNotebook",
- &our_info, 0);
- }
+ static const GInterfaceInfo link_info =
+ {
+ NULL,
+ NULL,
+ NULL
+ };
+
+ type = g_type_register_static (GTK_TYPE_NOTEBOOK,
+ "EphyNotebook",
+ &our_info, 0);
+ g_type_add_interface_static (type,
+ EPHY_TYPE_LINK,
+ &link_info);
+ }
- return type;
+ return type;
}
static void
@@ -575,6 +588,7 @@ notebook_drag_data_received_cb (GtkWidget* widget, GdkDragContext *context,
guint info, guint time, EphyTab *tab)
{
EphyWindow *window;
+ GtkWidget *notebook;
g_signal_stop_emission_by_name (widget, "drag_data_received");
@@ -583,33 +597,36 @@ notebook_drag_data_received_cb (GtkWidget* widget, GdkDragContext *context,
if (selection_data->length <= 0 || selection_data->data == NULL) return;
window = EPHY_WINDOW (gtk_widget_get_toplevel (widget));
+ notebook = ephy_window_get_notebook (window);
if (selection_data->target == gdk_atom_intern (EPHY_DND_URL_TYPE, FALSE))
{
- char *uris[2] = { NULL, NULL };
char **split;
/* URL_TYPE has format: url \n title */
split = g_strsplit (selection_data->data, "\n", 2);
- if (split != NULL && split[0] != NULL)
+ if (split != NULL && split[0] != NULL && split[0][0] != '\0')
{
- uris[0] = split[0];
- ephy_window_load_in_tabs (window, tab, uris);
+ ephy_link_open (EPHY_LINK (notebook), split[0], tab,
+ tab ? 0 : EPHY_LINK_NEW_TAB);
}
g_strfreev (split);
}
else if (selection_data->target == gdk_atom_intern (EPHY_DND_URI_LIST_TYPE, FALSE))
{
char **uris;
+ int i;
uris = gtk_selection_data_get_uris (selection_data);
+ if (uris == NULL) return;
- if (uris != NULL)
+ for (i = 0; uris[i] != NULL && i < INSANE_NUMBER_OF_URLS; i++)
{
- ephy_window_load_in_tabs (window, tab, uris);
-
- g_strfreev (uris);
+ tab = ephy_link_open (EPHY_LINK (notebook), uris[i],
+ tab, i == 0 ? 0 : EPHY_LINK_NEW_TAB);
}
+
+ g_strfreev (uris);
}
else
{