Finally fixed opening content in new windows

This commit is contained in:
Pierre Pronchery 2010-04-21 00:16:47 +00:00
parent 721eea0dd8
commit 9456d61b91
2 changed files with 9 additions and 10 deletions

View File

@ -347,18 +347,14 @@ static WebKitWebView * _on_create_web_view(WebKitWebView * view,
{ {
WebKitWebView * ret; WebKitWebView * ret;
Surfer * surfer; Surfer * surfer;
Surfer * copy;
surfer = g_object_get_data(G_OBJECT(data), "surfer"); surfer = g_object_get_data(G_OBJECT(data), "surfer");
if((copy = surfer_new_copy(surfer)) == NULL) if((surfer = surfer_new(NULL)) == NULL)
return NULL; return NULL;
/* FIXME many things: /* FIXME we may want the history to be copied (and then more) */
* - this is a bit ugly (showing and hiding) ret = g_object_get_data(G_OBJECT(surfer_get_view(surfer)), "view");
* - we may not want history etc to be copied
* - it loads the current URL first */
ret = g_object_get_data(G_OBJECT(surfer_get_view(copy)), "view");
g_signal_connect(G_OBJECT(ret), "web-view-ready", G_CALLBACK( g_signal_connect(G_OBJECT(ret), "web-view-ready", G_CALLBACK(
_on_web_view_ready), surfer_get_view(copy)); _on_web_view_ready), surfer_get_view(surfer));
return ret; return ret;
} }

View File

@ -284,7 +284,7 @@ Surfer * _new_do(char const * url)
/* notebook */ /* notebook */
surfer->notebook = gtk_notebook_new(); surfer->notebook = gtk_notebook_new();
gtk_notebook_set_show_border(GTK_NOTEBOOK(surfer->notebook), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(surfer->notebook), FALSE);
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(surfer->notebook), FALSE); surfer_open_tab(surfer, NULL);
g_signal_connect_swapped(G_OBJECT(surfer->notebook), "switch-page", g_signal_connect_swapped(G_OBJECT(surfer->notebook), "switch-page",
G_CALLBACK(on_notebook_switch_page), surfer); G_CALLBACK(on_notebook_switch_page), surfer);
gtk_box_pack_start(GTK_BOX(vbox), surfer->notebook, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), surfer->notebook, TRUE, TRUE, 0);
@ -316,7 +316,7 @@ static gboolean _new_idle(gpointer data)
{ {
SurferIdle * si = data; SurferIdle * si = data;
surfer_open_tab(si->surfer, si->url); surfer_open(si->surfer, si->url);
free(si->url); free(si->url);
free(si); free(si);
return FALSE; return FALSE;
@ -800,6 +800,9 @@ void surfer_open_tab(Surfer * surfer, char const * url)
if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(surfer->notebook)) > 1) if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(surfer->notebook)) > 1)
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(surfer->notebook), gtk_notebook_set_show_tabs(GTK_NOTEBOOK(surfer->notebook),
TRUE); TRUE);
else
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(surfer->notebook),
FALSE);
gtk_widget_show_all(widget); gtk_widget_show_all(widget);
} }