TextArea support, also OnChange better detect user intention, so Todo works even without b.invalidate()