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_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") },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										60
									
								
								surf.c
								
								
								
								
							
							
						
						
									
										60
									
								
								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);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue