tRemoved progress indicator - 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 3c1ed5d56af13f09a81beb00c59464972c36b2f0
 (DIR) parent 27dac4a157357a69c51c0eabeb017c96ee14cc28
 (HTM) Author: Jens Nyberg <jens.nyberg@gmail.com>
       Date:   Tue, 12 Feb 2013 20:36:56 +0100
       
       Removed progress indicator
       
       This removes the progress indicator and replaces it with
       letters in the window title.
       
       T/U: Trusted, Untrusted
       P/-: Proxy, No proxy
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M config.def.h                        |       7 -------
         M surf.c                              |      78 ++++++--------------------------
       
       2 files changed, 13 insertions(+), 72 deletions(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       t@@ -2,19 +2,12 @@
        static char *useragent      = "Mozilla/5.0 (X11; U; Unix; en-US) "
                "AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 "
                "Safari/537.15 Surf/"VERSION;
       -static char *progress       = "#0000FF";
       -static char *progress_untrust = "#FF0000";
       -static char *progress_trust = "#00FF00";
       -static char *progress_proxy = "#FFFF00";
       -static char *progress_proxy_trust = "#66FF00";
       -static char *progress_proxy_untrust = "#FF6600";
        static char *stylefile      = "~/.surf/style.css";
        static char *scriptfile     = "~/.surf/script.js";
        static char *cookiefile     = "~/.surf/cookies.txt";
        static time_t sessiontime   = 3600;
        static char *cafile         = "/etc/ssl/certs/ca-certificates.crt";
        static char *strictssl      = FALSE; /* Refuse untrusted SSL connections */
       -static int   indicator_thickness = 2;
        
        /* Webkit default features */
        static Bool enablespatialbrowsing = TRUE;
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -42,7 +42,7 @@ union Arg {
        };
        
        typedef struct Client {
       -        GtkWidget *win, *scroll, *vbox, *indicator, *pane;
       +        GtkWidget *win, *scroll, *vbox, *pane;
                WebKitWebView *view;
                WebKitWebInspector *inspector;
                char *title, *linkhover;
       t@@ -84,6 +84,7 @@ static gboolean showxid = FALSE;
        static char winid[64];
        static gboolean usingproxy = 0;
        static char togglestat[5];
       +static char pagestat[2];
        
        static void beforerequest(WebKitWebView *w, WebKitWebFrame *f,
                        WebKitWebResource *r, WebKitNetworkRequest *req,
       t@@ -113,13 +114,12 @@ static gboolean decidewindow(WebKitWebView *v, WebKitWebFrame *f,
        static void destroyclient(Client *c);
        static void destroywin(GtkWidget* w, Client *c);
        static void die(const char *errstr, ...);
       -static void drawindicator(Client *c);
        static void eval(Client *c, const Arg *arg);
       -static gboolean exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c);
        static void find(Client *c, const Arg *arg);
        static void fullscreen(Client *c, const Arg *arg);
        static const char *getatom(Client *c, int a);
        static void gettogglestat(Client *c);
       +static void getpagestat(Client *c);
        static char *geturi(Client *c);
        static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c);
        
       t@@ -370,7 +370,6 @@ destroyclient(Client *c) {
                Client *p;
        
                webkit_web_view_stop_loading(c->view);
       -        gtk_widget_destroy(c->indicator);
                gtk_widget_destroy(GTK_WIDGET(c->view));
                gtk_widget_destroy(c->scroll);
                gtk_widget_destroy(c->vbox);
       t@@ -403,51 +402,6 @@ die(const char *errstr, ...) {
        }
        
        static void
       -drawindicator(Client *c) {
       -        gint width;
       -        const char *uri;
       -        char *colorname;
       -        GtkWidget *w;
       -        GdkGC *gc;
       -        GdkColor fg;
       -
       -        uri = geturi(c);
       -        w = c->indicator;
       -        width = c->progress * w->allocation.width / 100;
       -        gc = gdk_gc_new(w->window);
       -        if(strstr(uri, "https://") == uri) {
       -                if(usingproxy) {
       -                        colorname = c->sslfailed? progress_proxy_untrust :
       -                                progress_proxy_trust;
       -                } else {
       -                        colorname = c->sslfailed? progress_untrust :
       -                                progress_trust;
       -                }
       -        } else {
       -                if(usingproxy) {
       -                        colorname = progress_proxy;
       -                } else {
       -                        colorname = progress;
       -                }
       -        }
       -
       -        gdk_color_parse(colorname, &fg);
       -        gdk_gc_set_rgb_fg_color(gc, &fg);
       -        gdk_draw_rectangle(w->window,
       -                        w->style->bg_gc[GTK_WIDGET_STATE(w)],
       -                        TRUE, 0, 0, w->allocation.width, w->allocation.height);
       -        gdk_draw_rectangle(w->window, gc, TRUE, 0, 0, width,
       -                        w->allocation.height);
       -        g_object_unref(gc);
       -}
       -
       -static gboolean
       -exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c) {
       -        drawindicator(c);
       -        return TRUE;
       -}
       -
       -static void
        find(Client *c, const Arg *arg) {
                const char *s;
        
       t@@ -739,21 +693,12 @@ newclient(void) {
                                "resource-request-starting",
                                G_CALLBACK(beforerequest), c);
        
       -        /* Indicator */
       -        c->indicator = gtk_drawing_area_new();
       -        gtk_widget_set_size_request(c->indicator, 0, indicator_thickness);
       -        g_signal_connect (G_OBJECT (c->indicator), "expose_event",
       -                        G_CALLBACK (exposeindicator), c);
       -
                /* Arranging */
                gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view));
                gtk_container_add(GTK_CONTAINER(c->win), c->pane);
                gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll);
       -        gtk_container_add(GTK_CONTAINER(c->vbox), c->indicator);
        
                /* Setup */
       -        gtk_box_set_child_packing(GTK_BOX(c->vbox), c->indicator, FALSE,
       -                        FALSE, 0, GTK_PACK_START);
                gtk_box_set_child_packing(GTK_BOX(c->vbox), c->scroll, TRUE,
                                TRUE, 0, GTK_PACK_START);
                gtk_widget_grab_focus(GTK_WIDGET(c->view));
       t@@ -1117,23 +1062,26 @@ gettogglestat(Client *c){
                togglestat[4] = '\0';
        }
        
       +static void
       +getpagestat(Client *c) {
       +        pagestat[0] = c->sslfailed ? 'U' : 'T';
       +        pagestat[1] = usingproxy ? 'P' : '-';
       +}
        
        static void
        update(Client *c) {
                char *t;
        
                gettogglestat(c);
       +        getpagestat(c);
        
                if(c->linkhover) {
       -                t = g_strdup_printf("%s| %s", togglestat, c->linkhover);
       +                t = g_strdup_printf("%s:%s | %s", togglestat, pagestat, c->linkhover);
                } else if(c->progress != 100) {
       -                drawindicator(c);
       -                gtk_widget_show(c->indicator);
       -                t = g_strdup_printf("[%i%%] %s| %s", c->progress, togglestat,
       -                                c->title);
       +                t = g_strdup_printf("[%i%%] %s:%s | %s", c->progress, togglestat,
       +                        pagestat, c->title);
                } else {
       -                gtk_widget_hide_all(c->indicator);
       -                t = g_strdup_printf("%s| %s", togglestat, c->title);
       +                t = g_strdup_printf("%s:%s | %s", togglestat, pagestat, c->title);
                }
        
                gtk_window_set_title(GTK_WINDOW(c->win), t);