rem: WMSetColorPanelColor(panel, color); if (panel->action && (!panel->flags.dragging || panel->flags.continuous)) { (*panel->action)(panel, panel->clientData); }
add: 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 (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); } }  if (panel->action && (!panel->flags.dragging || panel->flags.continuous)) { (*panel->action)(panel, panel->clientData); }
context: updateSwatch(WMColorPanel *panel, RColor color){    WMSetColorPanelColor(panel, color);    if (panel->action && (!panel->flags.dragging || panel->flags.continuous)) {        (*panel->action)(panel, panel->clientData);    }}