It's not consistent when keyDownEditor gets set and cleared. Can keyDownEditor be set in _beginSession() and cleared in _endSession() ?