don't change committing value (and set UI state) unless it is different