--- surf.c | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/surf.c b/surf.c index 682c1e2..7156c1d 100644 --- a/surf.c +++ b/surf.c _AT_@ -42,14 +42,14 @@ union Arg { }; typedef struct Client { - GtkWidget *win, *scroll, *vbox, *indicator; + GtkWidget *win, *scroll, *vbox, *indicator, *pane; WebKitWebView *view; WebKitWebInspector *inspector; char *title, *linkhover; const char *uri, *needle; gint progress; struct Client *next; - gboolean zoomed, fullscreen, isinspector, sslfailed; + gboolean zoomed, fullscreen, isinspecting, sslfailed; } Client; typedef struct { _AT_@ -506,28 +506,35 @@ initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) { static void inspector(Client *c, const Arg *arg) { - if(c->isinspector) - return; - webkit_web_inspector_show(c->inspector); + if(c->isinspecting) + webkit_web_inspector_close(c->inspector); + else + webkit_web_inspector_show(c->inspector); } static WebKitWebView * inspector_new(WebKitWebInspector *i, WebKitWebView *v, Client *c) { - Client *n = newclient(); - n->isinspector = true; - - return n->view; + return WEBKIT_WEB_VIEW(webkit_web_view_new()); } static gboolean inspector_show(WebKitWebInspector *i, Client *c) { - gtk_widget_show(GTK_WIDGET(webkit_web_inspector_get_web_view(i))); + if (c->isinspecting) + return false; + WebKitWebView *w = webkit_web_inspector_get_web_view(i); + gtk_paned_pack2(GTK_PANED(c->pane), GTK_WIDGET(w), TRUE, TRUE); + gtk_widget_show(GTK_WIDGET(w)); + c->isinspecting = true; return true; } static gboolean inspector_close(WebKitWebInspector *i, Client *c) { - gtk_widget_hide(GTK_WIDGET(webkit_web_inspector_get_web_view(i))); + if (!c->isinspecting) + return false; + GtkWidget *w = GTK_WIDGET(webkit_web_inspector_get_web_view(i)); + gtk_widget_hide(w); + c->isinspecting = false; return true; } _AT_@ -671,8 +678,12 @@ newclient(void) { "key-press-event", G_CALLBACK(keypress), c); + /* Pane */ + c->pane = gtk_vpaned_new(); + /* VBox */ c->vbox = gtk_vbox_new(FALSE, 0); + gtk_paned_pack1(GTK_PANED(c->pane), c->vbox, TRUE, TRUE); /* Scrolled Window */ c->scroll = gtk_scrolled_window_new(NULL, NULL); _AT_@ -726,7 +737,7 @@ newclient(void) { /* Arranging */ gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view)); - gtk_container_add(GTK_CONTAINER(c->win), c->vbox); + gtk_container_add(GTK_CONTAINER(c->win), c->pane); gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll); gtk_container_add(GTK_CONTAINER(c->vbox), c->indicator); _AT_@ -736,6 +747,7 @@ newclient(void) { gtk_box_set_child_packing(GTK_BOX(c->vbox), c->scroll, TRUE, TRUE, 0, GTK_PACK_START); gtk_widget_grab_focus(GTK_WIDGET(c->view)); + gtk_widget_show(c->pane); gtk_widget_show(c->vbox); gtk_widget_show(c->scroll); gtk_widget_show(GTK_WIDGET(c->view)); _AT_@ -776,7 +788,7 @@ newclient(void) { G_CALLBACK(inspector_close), c); g_signal_connect(G_OBJECT(c->inspector), "finished", G_CALLBACK(inspector_finished), c); - c->isinspector = false; + c->isinspecting = false; } g_free(uri); -- 1.8.0.1 --3U8TY7m7wOx7RL1F--Received on Mon Sep 17 2001 - 00:00:00 CEST
This archive was generated by hypermail 2.3.0 : Sat Jan 26 2013 - 21:12:02 CET