tAdapt setstyle() - surf - customized build of surf, the suckless webkit browser
(HTM) git clone git://src.adamsgaard.dk/surf
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit ba8617e4ee9ff35a45059930ef611cb85ed33af2
(DIR) parent 701815a5f22c76dafb6b25c08d0ceb87252782c0
(HTM) Author: Quentin Rameau <quinq@fifth.space>
Date: Fri, 20 Nov 2015 00:13:07 +0100
Adapt setstyle()
We can't anymore pass a simple path to a stylefile, we have to read the
entire file to create a stylesheet and apply it to the view.
Diffstat:
M surf.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
---
(DIR) diff --git a/surf.c b/surf.c
t@@ -135,7 +135,7 @@ static void gettogglestat(Client *c);
static void getpagestat(Client *c);
static char *geturi(Client *c);
static const gchar *getstyle(const char *uri);
-static void setstyle(Client *c, const char *style);
+static void setstyle(Client *c, const char *stylefile);
static void handleplumb(Client *c, const gchar *uri);
t@@ -670,11 +670,23 @@ getstyle(const char *uri)
}
void
-setstyle(Client *c, const char *style)
+setstyle(Client *c, const char *stylefile)
{
- WebKitWebSettings *settings = webkit_web_view_get_settings(c->view);
+ gchar *style;
+
+ if (!g_file_get_contents(stylefile, &style, NULL, NULL)) {
+ fprintf(stderr, "Could not read style file: %s\n", stylefile);
+ return;
+ }
+
+ webkit_user_content_manager_add_style_sheet(
+ webkit_web_view_get_user_content_manager(c->view),
+ webkit_user_style_sheet_new(style,
+ WEBKIT_USER_CONTENT_INJECT_ALL_FRAMES,
+ WEBKIT_USER_STYLE_LEVEL_USER,
+ NULL, NULL));
- g_object_set(G_OBJECT(settings), "user-stylesheet-uri", style, NULL);
+ g_free(style);
}
void