Use timer for keyboard scrolling

Use timer for keyboard scrolling instead of a tight idle event loop.