Add a way to toggle proxy usage while running.
This commit is contained in:
parent
6c8da4c851
commit
dcabd0239e
3 changed files with 42 additions and 1 deletions
|
@ -127,6 +127,7 @@ static Key keys[] = {
|
||||||
{ MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle, { 0 } },
|
{ MODKEY|GDK_SHIFT_MASK,GDK_m, togglestyle, { 0 } },
|
||||||
{ MODKEY|GDK_SHIFT_MASK,GDK_b, togglescrollbars, { 0 } },
|
{ MODKEY|GDK_SHIFT_MASK,GDK_b, togglescrollbars, { 0 } },
|
||||||
{ MODKEY|GDK_SHIFT_MASK,GDK_g, togglegeolocation, { 0 } },
|
{ MODKEY|GDK_SHIFT_MASK,GDK_g, togglegeolocation, { 0 } },
|
||||||
|
{ MODKEY|GDK_SHIFT_MASK,GDK_y, toggleproxy, { 0 } },
|
||||||
};
|
};
|
||||||
|
|
||||||
/* button definitions */
|
/* button definitions */
|
||||||
|
@ -139,3 +140,4 @@ static Button buttons[] = {
|
||||||
{ ClkAny, 0, 8, navigate, { .i = -1 } },
|
{ ClkAny, 0, 8, navigate, { .i = -1 } },
|
||||||
{ ClkAny, 0, 9, navigate, { .i = +1 } },
|
{ ClkAny, 0, 9, navigate, { .i = +1 } },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
3
surf.1
3
surf.1
|
@ -221,6 +221,9 @@ Toggle script execution. This will reload the page.
|
||||||
Toggle the enabling of plugins on that surf instance. This will reload the
|
Toggle the enabling of plugins on that surf instance. This will reload the
|
||||||
page.
|
page.
|
||||||
.TP
|
.TP
|
||||||
|
.B Ctrl\-Shift\-y
|
||||||
|
Toggle if a proxy should be used (if one is set in the environment).
|
||||||
|
.TP
|
||||||
.B F11
|
.B F11
|
||||||
Toggle fullscreen mode.
|
Toggle fullscreen mode.
|
||||||
.SH INDICATORS OF OPERATION
|
.SH INDICATORS OF OPERATION
|
||||||
|
|
38
surf.c
38
surf.c
|
@ -198,6 +198,7 @@ static void scroll_v(Client *c, const Arg *arg);
|
||||||
static void scroll(GtkAdjustment *a, const Arg *arg);
|
static void scroll(GtkAdjustment *a, const Arg *arg);
|
||||||
static void setatom(Client *c, int a, const char *v);
|
static void setatom(Client *c, int a, const char *v);
|
||||||
static void setup(void);
|
static void setup(void);
|
||||||
|
static void setup_proxy(void);
|
||||||
static void sigchld(int unused);
|
static void sigchld(int unused);
|
||||||
static void sighup(int unused);
|
static void sighup(int unused);
|
||||||
static void source(Client *c, const Arg *arg);
|
static void source(Client *c, const Arg *arg);
|
||||||
|
@ -208,6 +209,7 @@ static void titlechangeleave(void *a, void *b, Client *c);
|
||||||
static void toggle(Client *c, const Arg *arg);
|
static void toggle(Client *c, const Arg *arg);
|
||||||
static void togglecookiepolicy(Client *c, const Arg *arg);
|
static void togglecookiepolicy(Client *c, const Arg *arg);
|
||||||
static void togglegeolocation(Client *c, const Arg *arg);
|
static void togglegeolocation(Client *c, const Arg *arg);
|
||||||
|
static void toggleproxy(Client *c, const Arg *arg);
|
||||||
static void togglescrollbars(Client *c, const Arg *arg);
|
static void togglescrollbars(Client *c, const Arg *arg);
|
||||||
static void togglestyle(Client *c, const Arg *arg);
|
static void togglestyle(Client *c, const Arg *arg);
|
||||||
static void updatetitle(Client *c);
|
static void updatetitle(Client *c);
|
||||||
|
@ -1323,7 +1325,6 @@ void
|
||||||
setup(void)
|
setup(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char *proxy, *new_proxy, *no_proxy, **new_no_proxy;
|
|
||||||
char *styledirfile, *stylepath;
|
char *styledirfile, *stylepath;
|
||||||
GProxyResolver *pr;
|
GProxyResolver *pr;
|
||||||
SoupSession *s;
|
SoupSession *s;
|
||||||
|
@ -1399,6 +1400,19 @@ setup(void)
|
||||||
g_object_set(G_OBJECT(s), "tls-database", tlsdb, NULL);
|
g_object_set(G_OBJECT(s), "tls-database", tlsdb, NULL);
|
||||||
g_object_set(G_OBJECT(s), "ssl-strict", strictssl, NULL);
|
g_object_set(G_OBJECT(s), "ssl-strict", strictssl, NULL);
|
||||||
|
|
||||||
|
setup_proxy();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
setup_proxy(void)
|
||||||
|
{
|
||||||
|
char *proxy, *new_proxy, *no_proxy, **new_no_proxy;
|
||||||
|
GProxyResolver *pr;
|
||||||
|
SoupSession *s;
|
||||||
|
|
||||||
|
/* request handler */
|
||||||
|
s = webkit_get_default_session();
|
||||||
|
|
||||||
/* proxy */
|
/* proxy */
|
||||||
if ((proxy = getenv("http_proxy")) && strcmp(proxy, "")) {
|
if ((proxy = getenv("http_proxy")) && strcmp(proxy, "")) {
|
||||||
new_proxy = g_strrstr(proxy, "http://")
|
new_proxy = g_strrstr(proxy, "http://")
|
||||||
|
@ -1416,6 +1430,8 @@ setup(void)
|
||||||
g_free(new_proxy);
|
g_free(new_proxy);
|
||||||
g_strfreev(new_no_proxy);
|
g_strfreev(new_no_proxy);
|
||||||
usingproxy = 1;
|
usingproxy = 1;
|
||||||
|
} else {
|
||||||
|
usingproxy = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1480,6 +1496,7 @@ void
|
||||||
titlechange(WebKitWebView *view, GParamSpec *pspec, Client *c)
|
titlechange(WebKitWebView *view, GParamSpec *pspec, Client *c)
|
||||||
{
|
{
|
||||||
const gchar *t = webkit_web_view_get_title(view);
|
const gchar *t = webkit_web_view_get_title(view);
|
||||||
|
|
||||||
if (t) {
|
if (t) {
|
||||||
c->title = copystr(&c->title, t);
|
c->title = copystr(&c->title, t);
|
||||||
updatetitle(c);
|
updatetitle(c);
|
||||||
|
@ -1557,6 +1574,25 @@ twitch(Client *c, const Arg *arg)
|
||||||
gtk_adjustment_set_value(a, v);
|
gtk_adjustment_set_value(a, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
toggleproxy(Client *c, const Arg *arg)
|
||||||
|
{
|
||||||
|
SoupSession *s;
|
||||||
|
|
||||||
|
/* request handler */
|
||||||
|
s = webkit_get_default_session();
|
||||||
|
|
||||||
|
if (usingproxy) {
|
||||||
|
g_object_set(G_OBJECT(s), "proxy-resolver", NULL, NULL);
|
||||||
|
usingproxy = 0;
|
||||||
|
} else {
|
||||||
|
setup_proxy();
|
||||||
|
}
|
||||||
|
|
||||||
|
updatetitle(c);
|
||||||
|
/* Do not reload. */
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
togglescrollbars(Client *c, const Arg *arg)
|
togglescrollbars(Client *c, const Arg *arg)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue