Adapt inspector handling
authorQuentin Rameau <quinq@fifth.space>
Thu, 19 Nov 2015 23:44:29 +0000 (00:44 +0100)
committerQuentin Rameau <quinq@fifth.space>
Thu, 19 Nov 2015 23:46:11 +0000 (00:46 +0100)
The inspector is now easily manageable via API, there's no need for
keeping its state in the Client.

config.def.h
surf.c

index 2fa96dc..17a5149 100644 (file)
@@ -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 (file)
--- 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);