add virtual keyboard handler