summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIchitaro Kohara <ichitaro.kohara@sonyericsson.com>2011-02-17 12:31:23 +0100
committerJohan Redestig <johan.redestig@sonyericsson.com>2011-02-17 12:31:23 +0100
commitfbce6ac4cb9aebd795603fc2e315f6934bdabda7 (patch)
tree781ce782d63380b5b5bc0c2d7cd461671975c5a1
parent93552de8e305027fb003401e347b9493c64c981f (diff)
downloadframeworks_base-fbce6ac4cb9aebd795603fc2e315f6934bdabda7.zip
frameworks_base-fbce6ac4cb9aebd795603fc2e315f6934bdabda7.tar.gz
frameworks_base-fbce6ac4cb9aebd795603fc2e315f6934bdabda7.tar.bz2
Fixed to call computeVisibleRegions() when transparent value changed
When some Surfaces are overlapping and one of them changed to transparent or opaque, the back Surfaces should appear or disappear. This patch calls SurfaceFlinger::computeVisibleRegions() to re-calculate region of each Surface to implement the behavior. Change-Id: Iffb1caf1b4ce28dff252e114fe5b9b07d9c84a6f
-rw-r--r--services/surfaceflinger/LayerBuffer.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/services/surfaceflinger/LayerBuffer.cpp b/services/surfaceflinger/LayerBuffer.cpp
index 23506cf..55d859d 100644
--- a/services/surfaceflinger/LayerBuffer.cpp
+++ b/services/surfaceflinger/LayerBuffer.cpp
@@ -93,6 +93,9 @@ bool LayerBuffer::needsBlending() const {
}
void LayerBuffer::setNeedsBlending(bool blending) {
+ if (mNeedsBlending != blending) {
+ mFlinger->invalidateLayerVisibility(this);
+ }
mNeedsBlending = blending;
}