ProgramTextUI: adding isTextDirty