summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger/Layer.cpp
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-10-07 17:58:29 -0700
committerMathias Agopian <mathias@google.com>2009-10-07 17:58:29 -0700
commit8f2d50521653f24c2a5e77b627dc015c7fbd656a (patch)
tree49f7ced9cddff8187f64d4a28ecd5d8ddbd860c7 /libs/surfaceflinger/Layer.cpp
parent28541629e163399fd1cac126e06868ecf1b4811e (diff)
downloadframeworks_native-8f2d50521653f24c2a5e77b627dc015c7fbd656a.zip
frameworks_native-8f2d50521653f24c2a5e77b627dc015c7fbd656a.tar.gz
frameworks_native-8f2d50521653f24c2a5e77b627dc015c7fbd656a.tar.bz2
fix [2164183] sometimes device just wants to stay asleep
When switching rapidily orientation back and forth, surfaces end-up acquiring the freeze-lock when the first orientation change happens, but never release it because by the time the 2nd orientation change comes in, the surface size is back to its original size and doesn't appear to have resized. we now always release the freeze-lock when we receive a buffer of the expected size.
Diffstat (limited to 'libs/surfaceflinger/Layer.cpp')
-rw-r--r--libs/surfaceflinger/Layer.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/libs/surfaceflinger/Layer.cpp b/libs/surfaceflinger/Layer.cpp
index 2a3e667..7fd5434 100644
--- a/libs/surfaceflinger/Layer.cpp
+++ b/libs/surfaceflinger/Layer.cpp
@@ -454,10 +454,10 @@ void Layer::lockPageFlip(bool& recomputeVisibleRegions)
// recompute visible region
recomputeVisibleRegions = true;
-
- // we now have the correct size, unfreeze the screen
- mFreezeLock.clear();
}
+
+ // we now have the correct size, unfreeze the screen
+ mFreezeLock.clear();
}
if (lcblk->getQueuedCount()) {