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