rem: if (val >= 0 && val < step)
add: if (val == adj->lower) s = "stock_volume-mute"; else if (val > adj->lower && val <= adj->lower + step)
context: totem_volume_scale_value_changed (GtkRange * range){  TotemVolumeScale *scale = TOTEM_VOLUME_SCALE (range);  TotemVolumeButton *button = scale->button;  GtkAdjustment *adj = gtk_range_get_adjustment (GTK_RANGE (button->scale));  int step = adj->upper / 4;  float val = gtk_range_get_value (range);#ifdef HAVE_GTK_ONLY  char *s;  /* update label */  s = g_strdup_printf ("%d", lrintf (val));  gtk_button_set_label (GTK_BUTTON (button), s);  g_free (s);#else  const char *s;  GdkPixbuf *buf;  if (val >= 0 && val < step)    s = "stock_volume-0";  else if (val >= step && val < step * 2)    s = "stock_volume-min";  else if (val >= step * 2 && val < step * 3)    s = "stock_volume-med";  else    s = "stock_volume-max";  /* update image */  buf = gtk_icon_theme_load_icon (button->theme, s, 16, 0, NULL);  gtk_image_set_from_pixbuf (GTK_IMAGE (button->image), buf);#endif  /* signal */  g_signal_emit (button, signals[SIGNAL_VALUE_CHANGED], 0);}