If the valuebox of a slider gets disabled via setTextBoxIsEditable(false) and you disable and enable the slider the valuebox will be enabled again. This happens due to:
void Slider::enablementChanged()
{
    if (valueBox != 0)
        valueBox->setEditable (isEnabled());
    [...]
}
The valuebox enablement is keeped in sync with the sliders. The valuebox enablement should be stored sepearately in ‘valueBoxEnabled’, like the menu enablement in ‘menuEnabled’.
Edit:
In addition to this I suggest to change the following code:
void Slider::mouseDrag (const MouseEvent& e)
{
    [...]
            if (style == LinearBar && e.mouseWasClicked())
                return;
    [...]
}
to this:
void Slider::mouseDrag (const MouseEvent& e)
{
    [...]
            if (style == LinearBar && e.mouseWasClicked() && valueBoxEnabled)
                return;
    [...]
}
