Use event data in control component Twoway

Instead of polling the current keyboard state, use keyboard event data

remake of #597