X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=surf.c;h=6bf7989349e74bea03f203fc67b36b9b4d28d69e;hb=2e1fb873613b3917b97c954f0c085ea05016bdce;hp=a93e95177e7dbc693da6e2dff241dc76f52f7ea0;hpb=76940a9ab5ad1c9c5add53a1a077dc06369c745c;p=surf.git diff --git a/surf.c b/surf.c index a93e951..6bf7989 100644 --- a/surf.c +++ b/surf.c @@ -120,8 +120,7 @@ static gboolean decidepolicy(WebKitWebView *v, WebKitPolicyDecision *d, static void decidenavigation(WebKitPolicyDecision *d, Client *c); static void decidenewwindow(WebKitPolicyDecision *d, Client *c); static void decideresource(WebKitPolicyDecision *d, Client *c); -static gboolean deletion_interface(WebKitWebView *view, - WebKitDOMHTMLElement *arg1, Client *c); +static void closeview(WebKitWebView *v, Client *c); static void destroyclient(Client *c); static void destroywin(GtkWidget* w, Client *c); static void die(const char *errstr, ...); @@ -547,22 +546,15 @@ decideresource(WebKitPolicyDecision *d, Client *c) } } -gboolean -deletion_interface(WebKitWebView *view, WebKitDOMHTMLElement *arg1, Client *c) -{ - return FALSE; -} - void destroyclient(Client *c) { Client *p; webkit_web_view_stop_loading(c->view); - gtk_widget_destroy(GTK_WIDGET(c->view)); - gtk_widget_destroy(c->scroll); - gtk_widget_destroy(c->vbox); + /* Not needed, has already been called gtk_widget_destroy(c->win); + */ for (p = clients; p && p->next != c; p = p->next) ; @@ -571,14 +563,20 @@ destroyclient(Client *c) else clients = c->next; free(c); - if (clients == NULL) - gtk_main_quit(); +} + +void +closeview(WebKitWebView *v, Client *c) +{ + gtk_widget_destroy(c->win); } void destroywin(GtkWidget* w, Client *c) { destroyclient(c); + if (clients == NULL) + gtk_main_quit(); } void @@ -1006,9 +1004,8 @@ newview(Client *c, WebKitWebView *rv) g_signal_connect(G_OBJECT(v), "button-release-event", G_CALLBACK(buttonreleased), c); - g_signal_connect(G_OBJECT(v), - "should-show-delete-interface-for-element", - G_CALLBACK(deletion_interface), c); + g_signal_connect(G_OBJECT(v), "close", + G_CALLBACK(closeview), c); return v; }