OSDN Git Service

SurfaceFlinger: unfreeze windows for fixed size buffers.
authorJamie Gennis <jgennis@google.com>
Mon, 16 May 2011 23:55:03 +0000 (16:55 -0700)
committerJamie Gennis <jgennis@google.com>
Mon, 16 May 2011 23:59:04 +0000 (16:59 -0700)
This change makes SurfaceFlinger unfreeze a window if it ever gets a
buffer that is fixed-size.  Normally the window would not be frozen if
its in fixed-size mode, but if the window was frozen before entering
fixed-size mode then it should be unfrozen.

Change-Id: I6bc822d4b02ae51fa8914c1f60f5d24b2002b38d

services/surfaceflinger/Layer.cpp

index b2f95cd..2cabe02 100644 (file)
@@ -663,8 +663,9 @@ void Layer::lockPageFlip(bool& recomputeVisibleRegions)
 
         // update the layer size and release freeze-lock
         const Layer::State& front(drawingState());
-        if (newFrontBuffer->getWidth()  == front.requested_w &&
-            newFrontBuffer->getHeight() == front.requested_h)
+        if ((newFrontBuffer->getWidth()  == front.requested_w &&
+            newFrontBuffer->getHeight() == front.requested_h) ||
+            isFixedSize())
         {
             if ((front.w != front.requested_w) ||
                 (front.h != front.requested_h))