diff --git a/WINGs/wcolorpanel.c b/WINGs/wcolorpanel.c index 63892c46..579fded7 100644 --- a/WINGs/wcolorpanel.c +++ b/WINGs/wcolorpanel.c @@ -2480,19 +2480,26 @@ static void rgbDecToHex(WMWidget *w, void *data) (void) w; - if (WMGetButtonSelected(panel->rgbDecB) && panel->rgbState == RGBhex) { - WMSetLabelText(panel->rgbMaxL, "255"); - WMRedisplayWidget(panel->rgbMaxL); - value = rgbCharToInt(panel); - panel->rgbState = RGBdec; - rgbIntToChar(panel, value); - } - if (WMGetButtonSelected(panel->rgbHexB) && panel->rgbState == RGBdec) { - WMSetLabelText(panel->rgbMaxL, "FF"); - WMRedisplayWidget(panel->rgbMaxL); - value = rgbCharToInt(panel); - panel->rgbState = RGBhex; - rgbIntToChar(panel, value); + switch (panel->rgbState) { + case RGBhex: + if (WMGetButtonSelected(panel->rgbDecB)) { + WMSetLabelText(panel->rgbMaxL, "255"); + WMRedisplayWidget(panel->rgbMaxL); + value = rgbCharToInt(panel); + panel->rgbState = RGBdec; + rgbIntToChar(panel, value); + } + break; + + case RGBdec: + if (WMGetButtonSelected(panel->rgbHexB)) { + WMSetLabelText(panel->rgbMaxL, "FF"); + WMRedisplayWidget(panel->rgbMaxL); + value = rgbCharToInt(panel); + panel->rgbState = RGBhex; + rgbIntToChar(panel, value); + } + break; } }