---
config.def.h | 2 +-
config.mk | 2 +-
surf.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
3 files changed, 53 insertions(+), 13 deletions(-)
diff --git a/config.def.h b/config.def.h
index 663e532..ddfafc3 100644
--- a/config.def.h
+++ b/config.def.h
_AT_@ -68,7 +68,7 @@ static Key keys[] = {
{ 0, GDK_F11, fullscreen, { 0 } },
{ 0, GDK_Escape, stop, { 0 } },
- { MODKEY, GDK_o, source, { 0 } },
+ { MODKEY, GDK_o, inspector_show, { 0 } },
{ MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
{ MODKEY, GDK_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
diff --git a/config.mk b/config.mk
index ee05292..a6a9149 100644
--- a/config.mk
+++ b/config.mk
_AT_@ -20,7 +20,7 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-2.0 \
# flags
CPPFLAGS = -DVERSION=\"${VERSION}\" -D_BSD_SOURCE
-CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
+CFLAGS = -g -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
LDFLAGS = -g ${LIBS}
# Solaris
diff --git a/surf.c b/surf.c
index 899ab04..1800203 100644
--- a/surf.c
+++ b/surf.c
_AT_@ -41,6 +41,8 @@ union Arg {
typedef struct Client {
GtkWidget *win, *scroll, *vbox, *indicator;
WebKitWebView *view;
+ WebKitWebInspector *inspector;
+ gboolean is_inspector;
char *title, *linkhover;
const char *uri, *needle;
gint progress;
_AT_@ -139,7 +141,6 @@ static void scroll(GtkAdjustment *a, const Arg *arg);
static void setatom(Client *c, int a, const char *v);
static void setup(void);
static void sigchld(int unused);
-static void source(Client *c, const Arg *arg);
static void spawn(Client *c, const Arg *arg);
static void eval(Client *c, const Arg *arg);
static void stop(Client *c, const Arg *arg);
_AT_@ -153,6 +154,12 @@ static void usage(void);
static void windowobjectcleared(GtkWidget *w, WebKitWebFrame *frame,
JSContextRef js, JSObjectRef win, Client *c);
static void zoom(Client *c, const Arg *arg);
+static void inspector_open(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);
/* configuration, allows nested code to access above variables */
#include "config.h"
_AT_@ -711,6 +718,18 @@ newclient(void) {
g_object_set(G_OBJECT(settings), "enable-scripts", enablescripts, NULL);
g_object_set(G_OBJECT(settings), "enable-spatial-navigation",
spatialbrowsing, NULL);
+ g_object_set(G_OBJECT(settings), "enable-developer-extras", true, NULL);
+
+ c->inspector = WEBKIT_WEB_INSPECTOR(webkit_web_view_get_inspector(c->view));
+ g_signal_connect(G_OBJECT(c->inspector), "inspect-web-view",
+ G_CALLBACK(inspector_new), c);
+ g_signal_connect(G_OBJECT(c->inspector), "show-window",
+ G_CALLBACK(inspector_show), c);
+ g_signal_connect(G_OBJECT(c->inspector), "close-window",
+ G_CALLBACK(inspector_close), c);
+ g_signal_connect(G_OBJECT(c->inspector), "finished",
+ G_CALLBACK(inspector_finished), c);
+ c->is_inspector = false;
g_free(uri);
_AT_@ -953,16 +972,6 @@ sigchld(int unused) {
}
static void
-source(Client *c, const Arg *arg) {
- Arg a = { .b = FALSE };
- gboolean s;
-
- s = webkit_web_view_get_view_source_mode(c->view);
- webkit_web_view_set_view_source_mode(c->view, !s);
- reload(c, &a);
-}
-
-static void
spawn(Client *c, const Arg *arg) {
if(fork() == 0) {
if(dpy)
_AT_@ -1086,6 +1095,37 @@ zoom(Client *c, const Arg *arg) {
}
}
+WebKitWebView*
+inspector_new(WebKitWebInspector *i, WebKitWebView *v, Client *c) {
+ Client *n = newclient();
+ n->is_inspector = true;
+ return n->view;
+}
+
+gboolean
+inspector_show(WebKitWebInspector *i, Client *c) {
+ gtk_widget_show(GTK_WIDGET(webkit_web_inspector_get_web_view(i)));
+ return true;
+}
+
+gboolean
+inspector_close(WebKitWebInspector *i, Client *c) {
+ gtk_widget_hide(GTK_WIDGET(webkit_web_inspector_get_web_view(i)));
+ return true;
+}
+
+void
+inspector_open(Client *c, const Arg *arg) {
+ if (c->is_inspector)
+ return;
+ webkit_web_inspector_show(c->inspector);
+}
+
+void
+inspector_finished(WebKitWebInspector *i, Client *c) {
+ g_free(c->inspector);
+}
+
int
main(int argc, char *argv[]) {
Arg arg;
--
1.8.0.1
--s2ZSL+KKDSLx8OML--
Received on Mon Sep 17 2001 - 00:00:00 CEST
This archive was generated by hypermail 2.3.0 : Wed Jan 23 2013 - 00:36:02 CET