rem: panel->color = color;   if (panel->lastChanged != WMHSBModeColorPanel) {   if ((panel->color.red == 0) && (panel->color.green == 0) && (panel->color.blue == 0) && (panel->hsvcolor.hue <= 359)) { originalHue = panel->hsvcolor.hue; RRGBtoHSV(&panel->color, &panel->hsvcolor); panel->hsvcolor.hue = originalHue; } else { RRGBtoHSV(&panel->color, &panel->hsvcolor); } }
context: updateSwatch(WMColorPanel *panel, RColor color){    WMScreen	*scr = WMWidgetScreen(panel->win);    WMColor	*wellcolor;    int		originalHue;        wellcolor = WMCreateRGBColor(scr, color.red << 8, color.green << 8, 				 color.blue << 8, True);        WMSetColorWellColor(panel->colorWell, wellcolor);    WMReleaseColor(wellcolor);        panel->color = color;        /* If color was set by HSB-Panel do not convert back to hsv */    if (panel->lastChanged != WMHSBModeColorPanel) {		/* if color is black, hue is undetermined, so it must be restored */	if ((panel->color.red == 0) &&	    (panel->color.green == 0) &&	    (panel->color.blue == 0) &&	    (panel->hsvcolor.hue <= 359))	{	    originalHue = panel->hsvcolor.hue;	    RRGBtoHSV(&panel->color, &panel->hsvcolor);	    panel->hsvcolor.hue = originalHue;	} else {	    RRGBtoHSV(&panel->color, &panel->hsvcolor);	}    }    if (!panel->flags.dragging || panel->flags.continuous) {	if (panel->action)	    (*panel->action)(panel, panel->clientData);	WMPostNotificationName(WMColorPanelColorChangedNotification, panel, 			       NULL);    }}