Adapt inspector handling
The inspector is now easily manageable via API, there's no need for keeping its state in the Client.
This commit is contained in:
parent
0b5b798eb2
commit
c4f01cd18b
|
@ -109,7 +109,7 @@ static Key keys[] = {
|
||||||
|
|
||||||
{ 0, GDK_KEY_F11, togglefullscreen, { 0 } },
|
{ 0, GDK_KEY_F11, togglefullscreen, { 0 } },
|
||||||
{ 0, GDK_KEY_Escape, stop, { 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_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
|
||||||
{ MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
|
{ MODKEY, GDK_KEY_f, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
|
||||||
|
|
60
surf.c
60
surf.c
|
@ -65,7 +65,7 @@ typedef struct Client {
|
||||||
const char *needle;
|
const char *needle;
|
||||||
gint progress;
|
gint progress;
|
||||||
struct Client *next;
|
struct Client *next;
|
||||||
gboolean zoomed, fullscreen, isinspecting;
|
gboolean zoomed, fullscreen;
|
||||||
} Client;
|
} Client;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -144,12 +144,7 @@ static void downloadstarted(WebKitWebContext *wc, WebKitDownload *d,
|
||||||
static void responsereceived(WebKitDownload *d, GParamSpec *ps, Client *c);
|
static void responsereceived(WebKitDownload *d, GParamSpec *ps, Client *c);
|
||||||
static void download(Client *c, WebKitURIResponse *r);
|
static void download(Client *c, WebKitURIResponse *r);
|
||||||
|
|
||||||
static void inspector(Client *c, const Arg *arg);
|
static void toggleinspector(Client *c, const Arg *a);
|
||||||
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 gboolean keypress(GtkAccelGroup *group, GObject *obj, guint key,
|
static gboolean keypress(GtkAccelGroup *group, GObject *obj, guint key,
|
||||||
GdkModifierType mods, Client *c);
|
GdkModifierType mods, Client *c);
|
||||||
|
@ -722,60 +717,16 @@ download(Client *c, WebKitURIResponse *r)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
inspector(Client *c, const Arg *arg)
|
toggleinspector(Client *c, const Arg *a)
|
||||||
{
|
{
|
||||||
if (enableinspector) {
|
if (enableinspector) {
|
||||||
if (c->isinspecting)
|
if (webkit_web_inspector_is_attached(c->inspector))
|
||||||
webkit_web_inspector_close(c->inspector);
|
webkit_web_inspector_close(c->inspector);
|
||||||
else
|
else
|
||||||
webkit_web_inspector_show(c->inspector);
|
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
|
gboolean
|
||||||
keypress(GtkAccelGroup *group, GObject *obj, guint key, GdkModifierType mods,
|
keypress(GtkAccelGroup *group, GObject *obj, guint key, GdkModifierType mods,
|
||||||
Client *c)
|
Client *c)
|
||||||
|
@ -1025,6 +976,9 @@ showview(WebKitWebView *v, Client *c)
|
||||||
|
|
||||||
c->win = createwindow(c);
|
c->win = createwindow(c);
|
||||||
|
|
||||||
|
if (enableinspector)
|
||||||
|
c->inspector = webkit_web_view_get_inspector(c->view);
|
||||||
|
|
||||||
if (!kioskmode)
|
if (!kioskmode)
|
||||||
addaccelgroup(c);
|
addaccelgroup(c);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user