From 01a5ea35fbba4c5bb1d7790ae1677a2fa752e042 Mon Sep 17 00:00:00 2001 From: John Reck Date: Wed, 3 Dec 2014 13:01:07 -0800 Subject: Resume RT-animations after a pauseSurface Bug: 18203577 The issue occurs as a result of performTraversals() both doing a window relayout call *and* early-returning because it's not dirty. To fix this pauseSurface() returns whether or not the RT-side is "dirty" to force ViewRootImpl to do a draw even if mDirty is otherwise empty. Change-Id: I534f367e75d18d273ebf14df3927f5c464ef6bef --- libs/hwui/renderthread/RenderProxy.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'libs/hwui/renderthread/RenderProxy.cpp') diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp index 5d55ea62af1f..6d063a4b0ce0 100644 --- a/libs/hwui/renderthread/RenderProxy.cpp +++ b/libs/hwui/renderthread/RenderProxy.cpp @@ -156,15 +156,14 @@ void RenderProxy::updateSurface(const sp& window) { } CREATE_BRIDGE2(pauseSurface, CanvasContext* context, ANativeWindow* window) { - args->context->pauseSurface(args->window); - return NULL; + return (void*) args->context->pauseSurface(args->window); } -void RenderProxy::pauseSurface(const sp& window) { +bool RenderProxy::pauseSurface(const sp& window) { SETUP_TASK(pauseSurface); args->context = mContext; args->window = window.get(); - postAndWait(task); + return (bool) postAndWait(task); } CREATE_BRIDGE7(setup, CanvasContext* context, int width, int height, -- cgit v1.2.3