Improve Launcher drag performance.
Launcher swiping looks choppy. It's because we deliver the motion events of the drags asynchronously, and sometimes we may get an event to redraw before the motion event is posted, so we end up drawing again without updating to the latest motion information. This fix makes input event processing more proactive. Every time we run ViewRootImpl.performTraversals() (which is what happens whenever we need to layout, measure, and/or draw), we first process all pending input events, ensuring that we are completely up-to-date with posted events prior to drawing, so that the drawing we do is synchronous with the events we've received. This eliminates the choppiness and means that we can now get the full refresh rate on the screen with drag events. The fix was done for Launcher, but it is pervasive in the system, so this may fix other laggy drag behavior as well. Change-Id: I8dbed6acadc2662f317f736e769f536f555701aa
Loading
Please register or sign in to comment