From: Quentin Rameau Date: Thu, 19 Nov 2015 23:44:29 +0000 (+0100) Subject: Adapt inspector handling X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=c4f01cd18bf69dd24153f110be500ccc59eff498;p=surf.git Adapt inspector handling The inspector is now easily manageable via API, there's no need for keeping its state in the Client. --- diff --git a/config.def.h b/config.def.h index 2fa96dc..17a5149 100644 --- a/config.def.h +++ b/config.def.h @@ -109,7 +109,7 @@ static Key keys[] = { { 0, GDK_KEY_F11, togglefullscreen, { 0 } }, { 0, GDK_KEY_Escape, stop, { 0 } }, - { MODKEY|GDK_SHIFT_MASK, GDK_KEY_o, inspector, { 0 } }, + { MODKEY|GDK_SHIFT_MASK, GDK_KEY_o, toggleinspector, { 0 } }, { MODKEY, GDK_KEY_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") }, { MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") }, diff --git a/surf.c b/surf.c index 9444982..726369a 100644 --- a/surf.c +++ b/surf.c @@ -65,7 +65,7 @@ typedef struct Client { const char *needle; gint progress; struct Client *next; - gboolean zoomed, fullscreen, isinspecting; + gboolean zoomed, fullscreen; } Client; typedef struct { @@ -144,12 +144,7 @@ static void downloadstarted(WebKitWebContext *wc, WebKitDownload *d, static void responsereceived(WebKitDownload *d, GParamSpec *ps, Client *c); static void download(Client *c, WebKitURIResponse *r); -static void inspector(Client *c, const Arg *arg); -static WebKitWebView *inspector_new(WebKitWebInspector *i, WebKitWebView *v, - Client *c); -static gboolean inspector_show(WebKitWebInspector *i, Client *c); -static gboolean inspector_close(WebKitWebInspector *i, Client *c); -static void inspector_finished(WebKitWebInspector *i, Client *c); +static void toggleinspector(Client *c, const Arg *a); static gboolean keypress(GtkAccelGroup *group, GObject *obj, guint key, GdkModifierType mods, Client *c); @@ -722,60 +717,16 @@ download(Client *c, WebKitURIResponse *r) } void -inspector(Client *c, const Arg *arg) +toggleinspector(Client *c, const Arg *a) { if (enableinspector) { - if (c->isinspecting) + if (webkit_web_inspector_is_attached(c->inspector)) webkit_web_inspector_close(c->inspector); else webkit_web_inspector_show(c->inspector); } } -WebKitWebView * -inspector_new(WebKitWebInspector *i, WebKitWebView *v, Client *c) -{ - return WEBKIT_WEB_VIEW(webkit_web_view_new()); -} - -gboolean -inspector_show(WebKitWebInspector *i, Client *c) -{ - WebKitWebView *w; - - if (c->isinspecting) - return false; - - 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; -} - -gboolean -inspector_close(WebKitWebInspector *i, Client *c) -{ - GtkWidget *w; - - if (!c->isinspecting) - return false; - - w = GTK_WIDGET(webkit_web_inspector_get_web_view(i)); - gtk_widget_hide(w); - gtk_widget_destroy(w); - c->isinspecting = false; - - return true; -} - -void -inspector_finished(WebKitWebInspector *i, Client *c) -{ - g_free(c->inspector); -} - gboolean keypress(GtkAccelGroup *group, GObject *obj, guint key, GdkModifierType mods, Client *c) @@ -1025,6 +976,9 @@ showview(WebKitWebView *v, Client *c) c->win = createwindow(c); + if (enableinspector) + c->inspector = webkit_web_view_get_inspector(c->view); + if (!kioskmode) addaccelgroup(c);