From d6c1f67daca6f4b3d2ea4e0259f6d5df7ef1af99 Mon Sep 17 00:00:00 2001 From: Jens Nyberg Date: Tue, 12 Feb 2013 20:36:56 +0100 Subject: [PATCH] Removed progress indicator This removes the progress indicator and replaces it with letters in the window title. -/T/U: No SSL, Trusted SSL, Untrusted SSL P/-: Proxy, No proxy --- config.def.h | 7 ----- surf.c | 84 ++++++++++++++---------------------------------------------- 2 files changed, 19 insertions(+), 72 deletions(-) diff --git a/config.def.h b/config.def.h index a221c86..d503bfb 100644 --- a/config.def.h +++ b/config.def.h @@ -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; diff --git a/surf.c b/surf.c index cebd469..b36fc4a 100644 --- a/surf.c +++ b/surf.c @@ -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; @@ -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, @@ -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); @@ -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); @@ -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; @@ -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)); @@ -1117,23 +1062,32 @@ gettogglestat(Client *c){ togglestat[4] = '\0'; } +static void +getpagestat(Client *c) { + const char *uri = geturi(c); + + if(strstr(uri, "https://") == uri) + pagestat[0] = c->sslfailed ? 'U' : 'T'; + else + pagestat[0] = '-'; + + 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); -- 1.8.1.3