browser->throbberID++; if (browser->throbberID == MINIMO_THROBBER_ICON_MAX) browser->throbberID = 0;  gtk_pixmap_get(GTK_PIXMAP(browser->stopIcon[browser->throbberID]), &val, &mask);
browser->throbberID += (browser->throbberDirection * MINIMO_THROBBER_COLOR_STEP);  GdkColor myColor; myColor.red = myColor.green = myColor.blue = browser->throbberID;  gtk_widget_modify_base(GTK_WIDGET(browser->urlEntry), GTK_STATE_NORMAL, &myColor);  if (browser->throbberDirection < 0 && browser->throbberID <= MINIMO_THROBBER_COLOR_MIN) { browser->throbberDirection = 1; } else if (browser->throbberDirection > 0 && browser->throbberID >= MINIMO_THROBBER_COLOR_MAX) { browser->throbberDirection = -1; }
static gboolean update_throbber(gpointer data){  MinimoBrowser *browser = (MinimoBrowser*)data;  GdkPixmap *val;  GdkBitmap *mask;  gboolean loading = browser->loading;  if (loading)  {    browser->throbberID++;    if (browser->throbberID == MINIMO_THROBBER_ICON_MAX)      browser->throbberID = 0;        gtk_pixmap_get(GTK_PIXMAP(browser->stopIcon[browser->throbberID]), &val, &mask);  }  else  {    // set the icon back to the reload icon.    gtk_pixmap_get(GTK_PIXMAP(browser->reloadIcon), &val, &mask);  }  gtk_pixmap_set(GTK_PIXMAP(browser->stopReloadIcon), val, mask);  gtk_widget_queue_draw(browser->stopReloadIcon);  gtk_widget_show_now(browser->toolbar);  gtk_main_iteration_do(false);      return loading;}