Improve keyboard change handling by just using the WillChangeFrame event, and keeping track of the most recent frame manually