Hiding the loading indicator when it is not used. Based on a patch from
[surf.git] / surf.c
diff --git a/surf.c b/surf.c
index 7cf6491..ae1a935 100644 (file)
--- a/surf.c
+++ b/surf.c
@@ -341,11 +341,12 @@ drawindicator(Client *c) {
        w = c->indicator;
        width = c->progress * w->allocation.width / 100;
        gc = gdk_gc_new(w->window);
-       if(strstr(uri, "https://") == uri)
+       if(strstr(uri, "https://") == uri) {
                gdk_color_parse(c->sslfailed ?
                                progress_untrust : progress_trust, &fg);
-       else
+       } else {
                gdk_color_parse(progress, &fg);
+       }
        gdk_gc_set_rgb_fg_color(gc, &fg);
        gdk_draw_rectangle(w->window,
                        w->style->bg_gc[GTK_WIDGET_STATE(w)],
@@ -554,7 +555,7 @@ newclient(void) {
 
        /* Indicator */
        c->indicator = gtk_drawing_area_new();
-       gtk_widget_set_size_request(c->indicator, 0, 2);
+       gtk_widget_set_size_request(c->indicator, 0, indicator_thickness);
        g_signal_connect (G_OBJECT (c->indicator), "expose_event",
                        G_CALLBACK (exposeindicator), c);
 
@@ -569,7 +570,6 @@ newclient(void) {
        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));
        gtk_widget_show(c->vbox);
-       gtk_widget_show(c->indicator);
        gtk_widget_show(c->scroll);
        gtk_widget_show(GTK_WIDGET(c->view));
        gtk_widget_show(c->win);
@@ -871,13 +871,16 @@ void
 update(Client *c) {
        char *t;
 
-       if(c->linkhover)
+       if(c->linkhover) {
                t = g_strdup(c->linkhover);
-        else if(c->progress != 100)
+       } else if(c->progress != 100) {
+               drawindicator(c);
+               gtk_widget_show(c->indicator);
                t = g_strdup_printf("[%i%%] %s", c->progress, c->title);
-       else
+       } else {
+               gtk_widget_hide_all(c->indicator);
                t = g_strdup(c->title);
-       drawindicator(c);
+       }
        gtk_window_set_title(GTK_WINDOW(c->win), t);
        g_free(t);
 }