if (started_as_root == 1 && users_list) {  return; }
void solid_bg(int restore) {	static int desktop = -1;	static int solid_on = 0;	static char *prev_str;	char *dtname, *color;	if (restore) {		if (! solid_on) {			return;		}		if (desktop == 0) {			solid_root(NULL);		} else if (desktop == 1) {			solid_gnome(NULL);		} else if (desktop == 2) {			solid_kde(NULL);		}		solid_on = 0;		return;	}	if (! solid_str) {		return;	}	if (solid_on && !strcmp(prev_str, solid_str)) {		return;	}	if (strstr(solid_str, "guess:") == solid_str	    || !strchr(solid_str, ':')) {		dtname = guess_desktop();		rfbLog("guessed desktop: %s\n", dtname);	} else {		if (strstr(solid_str, "gnome:") == solid_str) {			dtname = "gnome";		} else if (strstr(solid_str, "kde:") == solid_str) {			dtname = "kde";		} else {			dtname = "root";		}	}	color = strchr(solid_str, ':');	if (! color) {		color = solid_str;	} else {		color++;		if (*color == '\0') {			color = solid_default;		}	}	if (!strcmp(dtname, "gnome")) {		desktop = 1;		solid_gnome(color);	} else if (!strcmp(dtname, "kde")) {		desktop = 2;		solid_kde(color);	} else {		desktop = 0;		solid_root(color);	}	if (prev_str) {		free(prev_str);	}	prev_str = strdup(solid_str);	solid_on = 1;}