From c61de17f143b5f806c5bab9cc58910a322302b70 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Mon, 30 Nov 2009 11:15:41 -0800 Subject: [PATCH] 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. --- libs/surfaceflinger/Layer.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/surfaceflinger/Layer.cpp b/libs/surfaceflinger/Layer.cpp index f5a5a0bf2..f11bf1846 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()