summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-11-30 11:15:41 -0800
committerMathias Agopian <mathias@google.com>2009-11-30 11:15:41 -0800
commit5469a4ac1c5073bde2c7caf8540a459c8fb759cd (patch)
tree094c694a0ce3ac242554cbc6e5ef50c1ff987ec9 /libs/surfaceflinger
parentbb3bb57a6330f71323fcd7e93e88dbdab55daec3 (diff)
downloadframeworks_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.cpp5
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()