1. A computer program product, tangibly embodied in a non-transitory computer-readable storage medium, comprising instructions operable on a computer to: provide a user interface for a computer program application, the user interface being operable to receive input from a user interacting with controls in the user interface and, from the input, to generate user interaction events; identify one or more future user interaction events that may occur while the user interface is in a current user interface state, the current user interface state comprising one or more controls enabling user input, the controls comprising one or more current properties; estimate a likelihood for the future user interaction events to occur based on a history of previous user inputs to the user interface; select one or more of the future user interaction events to pre-process based on the estimated likelihoods that the future user interaction events will occur; pre-process, while the user interface is in the current user interface state, the selected future user interaction events to generate one or more future user interface states, the future user interface states comprising one or more future properties of the controls in the current user interface state; pre-render, while the user interface is in the current user interface state, future user interface appearances corresponding to the generated future user interface states; and store the pre-rendered future user interface appearances for later use.