diff options
author | Mathias Agopian <mathias@google.com> | 2009-11-30 11:15:41 -0800 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-11-30 11:15:41 -0800 |
commit | 5469a4ac1c5073bde2c7caf8540a459c8fb759cd (patch) | |
tree | 094c694a0ce3ac242554cbc6e5ef50c1ff987ec9 /libs/surfaceflinger | |
parent | bb3bb57a6330f71323fcd7e93e88dbdab55daec3 (diff) | |
download | frameworks_base-5469a4ac1c5073bde2c7caf8540a459c8fb759cd.zip frameworks_base-5469a4ac1c5073bde2c7caf8540a459c8fb759cd.tar.gz frameworks_base-5469a4ac1c5073bde2c7caf8540a459c8fb759cd.tar.bz2 |
fixed [2260070] display stopped updating
always check that the visible region isn't empty after all visible regions are recomputed
clear he freeze-lock if it is.
Diffstat (limited to 'libs/surfaceflinger')
-rw-r--r-- | libs/surfaceflinger/Layer.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/surfaceflinger/Layer.cpp b/libs/surfaceflinger/Layer.cpp index f5a5a0b..f11bf18 100644 --- a/libs/surfaceflinger/Layer.cpp +++ b/libs/surfaceflinger/Layer.cpp @@ -515,6 +515,11 @@ void Layer::unlockPageFlip( dirtyRegion.andSelf(visibleRegionScreen); outDirtyRegion.orSelf(dirtyRegion); } + if (visibleRegionScreen.isEmpty()) { + // an invisible layer should not hold a freeze-lock + // (because it may never be updated and thereore never release it) + mFreezeLock.clear(); + } } void Layer::finishPageFlip() |