diff options
author | John Reck <jreck@google.com> | 2014-12-03 13:01:07 -0800 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-12-03 13:03:59 -0800 |
commit | 01a5ea35fbba4c5bb1d7790ae1677a2fa752e042 (patch) | |
tree | d890ced3bdb3be6275e2d13d0dbd9f901ec8ce4d /libs/hwui/renderthread/RenderThread.cpp | |
parent | 8d72046b9ba06feadbcf71815a1c6e1017c8da37 (diff) | |
download | frameworks_base-01a5ea35fbba4c5bb1d7790ae1677a2fa752e042.zip frameworks_base-01a5ea35fbba4c5bb1d7790ae1677a2fa752e042.tar.gz frameworks_base-01a5ea35fbba4c5bb1d7790ae1677a2fa752e042.tar.bz2 |
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
Diffstat (limited to 'libs/hwui/renderthread/RenderThread.cpp')
-rw-r--r-- | libs/hwui/renderthread/RenderThread.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/hwui/renderthread/RenderThread.cpp b/libs/hwui/renderthread/RenderThread.cpp index f887103..38cb4cd 100644 --- a/libs/hwui/renderthread/RenderThread.cpp +++ b/libs/hwui/renderthread/RenderThread.cpp @@ -314,9 +314,11 @@ void RenderThread::postFrameCallback(IFrameCallback* callback) { mPendingRegistrationFrameCallbacks.insert(callback); } -void RenderThread::removeFrameCallback(IFrameCallback* callback) { - mFrameCallbacks.erase(callback); - mPendingRegistrationFrameCallbacks.erase(callback); +bool RenderThread::removeFrameCallback(IFrameCallback* callback) { + size_t erased; + erased = mFrameCallbacks.erase(callback); + erased |= mPendingRegistrationFrameCallbacks.erase(callback); + return erased; } void RenderThread::pushBackFrameCallback(IFrameCallback* callback) { |