Changed setEnable() to only do work if the new state is different to the
current state