static void gettogglestat(Client *c);
static void getpagestat(Client *c);
static char *geturi(Client *c);
-static gchar *getstyle(const char *uri);
+static const gchar *getstyle(const char *uri);
+static void setstyle(Client *c, const char *style);
static void handleplumb(Client *c, WebKitWebView *w, const gchar *uri);
return uri;
}
-gchar *
+const gchar *
getstyle(const char *uri)
{
int i;
if (stylefile != NULL)
- return g_strconcat("file://", stylefile, NULL);
+ return stylefile;
for (i = 0; i < LENGTH(styles); i++) {
if (styles[i].regex && !regexec(&(styles[i].re), uri, 0,
NULL, 0))
- return g_strconcat("file://", styles[i].style, NULL);
+ return styles[i].style;
}
- return g_strdup("");
+
+ return "";
+}
+
+void
+setstyle(Client *c, const char *style)
+{
+ WebKitWebSettings *settings = webkit_web_view_get_settings(c->view);
+
+ g_object_set(G_OBJECT(settings), "user-stylesheet-uri", style, NULL);
}
void
void
inspector(Client *c, const Arg *arg)
{
- if (c->isinspecting)
- webkit_web_inspector_close(c->inspector);
- else
- webkit_web_inspector_show(c->inspector);
+ if (enableinspector) {
+ if (c->isinspecting)
+ webkit_web_inspector_close(c->inspector);
+ else
+ webkit_web_inspector_show(c->inspector);
+ }
}
WebKitWebView *
WebKitWebFrame *frame;
WebKitWebDataSource *src;
WebKitNetworkRequest *request;
- WebKitWebSettings *set = webkit_web_view_get_settings(c->view);
SoupMessage *msg;
char *uri;
}
setatom(c, AtomUri, uri);
- if (enablestyles) {
- g_object_set(G_OBJECT(set), "user-stylesheet-uri",
- getstyle(uri), NULL);
- }
+ if (enablestyle)
+ setstyle(c, getstyle(uri));
break;
case WEBKIT_LOAD_FINISHED:
c->progress = 100;
if (!(ua = getenv("SURF_USERAGENT")))
ua = useragent;
g_object_set(G_OBJECT(settings), "user-agent", ua, NULL);
- if (enablestyles) {
- g_object_set(G_OBJECT(settings),
- "user-stylesheet-uri", getstyle("about:blank"),
- NULL);
- }
g_object_set(G_OBJECT(settings),
"auto-load-images", loadimages, NULL);
g_object_set(G_OBJECT(settings),
"default-font-size", defaultfontsize, NULL);
g_object_set(G_OBJECT(settings),
"resizable-text-areas", 1, NULL);
+ if (enablestyle)
+ setstyle(c, getstyle("about:blank"));
/*
* While stupid, CSS specifies that a pixel represents 1/96 of an inch.
c->isinspecting = false;
}
- if (runinfullscreen) {
- c->fullscreen = 0;
+ if (runinfullscreen)
fullscreen(c, NULL);
- }
setatom(c, AtomFind, "");
setatom(c, AtomUri, "about:blank");
setup(void)
{
int i;
- char *proxy;
- char *new_proxy;
+ char *proxy, *new_proxy;
+ char *styledirfile, *stylepath;
SoupURI *puri;
SoupSession *s;
GError *error = NULL;
cookiefile = buildfile(cookiefile);
scriptfile = buildfile(scriptfile);
cachefolder = buildpath(cachefolder);
- styledir = buildpath(styledir);
if (stylefile == NULL) {
+ styledir = buildpath(styledir);
for (i = 0; i < LENGTH(styles); i++) {
if (regcomp(&(styles[i].re), styles[i].regex,
REG_EXTENDED)) {
styles[i].regex);
styles[i].regex = NULL;
}
- styles[i].style = buildfile(g_strconcat(styledir, "/",
- styles[i].style, NULL));
+ styledirfile = g_strconcat(styledir, "/",
+ styles[i].style, NULL);
+ stylepath = buildfile(styledirfile);
+ styles[i].style = g_strconcat("file://", stylepath,
+ NULL);
+ g_free(styledirfile);
+ g_free(stylepath);
}
+ g_free(styledir);
} else {
- stylefile = buildfile(stylefile);
+ stylepath = buildfile(stylefile);
+ stylefile = g_strconcat("file://", stylepath, NULL);
+ g_free(stylepath);
}
/* request handler */
void
togglestyle(Client *c, const Arg *arg)
{
- WebKitWebSettings *settings = webkit_web_view_get_settings(c->view);
- char *uri;
-
- enablestyles = !enablestyles;
- uri = enablestyles ? getstyle(geturi(c)) : g_strdup("");
- g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL);
+ enablestyle = !enablestyle;
+ setstyle(c, enablestyle ? getstyle(geturi(c)) : "");
updatetitle(c);
}
g_object_get(G_OBJECT(settings), "enable-plugins", &value, NULL);
togglestat[p++] = value? 'V': 'v';
- togglestat[p++] = enablestyles ? 'M': 'm';
+ togglestat[p++] = enablestyle ? 'M': 'm';
togglestat[p] = '\0';
}
void
usage(void)
{
- die("usage: %s [-bBfFgGiIkKnNpPsSvx] [-a cookiepolicies ] "
+ die("usage: %s [-bBdDfFgGiIkKmMnNpPsSvx] [-a cookiepolicies ] "
"[-c cookiefile] [-e xid] [-r scriptfile] [-t stylefile] "
"[-u useragent] [-z zoomlevel] [uri]\n", basename(argv0));
}
embed = strtol(EARGF(usage()), NULL, 0);
break;
case 'f':
- runinfullscreen = 1;
+ runinfullscreen = 0;
break;
case 'F':
- runinfullscreen = 0;
+ runinfullscreen = 1;
break;
case 'g':
allowgeolocation = 0;
kioskmode = 1;
break;
case 'm':
- enablestyles = 0;
+ enablestyle = 0;
break;
case 'M':
- enablestyles = 1;
+ enablestyle = 1;
break;
case 'n':
enableinspector = 0;