am 3b66e43e: Merge "Refresh display lists when turning off layers rendering. Bug #3420565" into honeycomb

* commit '3b66e43e8c5671c646ccc6d52b0f2dec13898c91':
  Refresh display lists when turning off layers rendering. Bug #3420565
This commit is contained in:
Romain Guy
2011-02-03 11:46:47 -08:00
committed by Android Git Automerger

View File

@@ -2562,8 +2562,24 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
* @hide
*/
public void setChildrenLayersEnabled(boolean enabled) {
mDrawLayers = enabled;
invalidate(true);
if (enabled != mDrawLayers) {
mDrawLayers = enabled;
invalidate(true);
// We need to invalidate any child with a layer. For instance,
// if a child is backed by a hardware layer and we disable layers
// the child is marked as not dirty (flags cleared the last time
// the child was drawn inside its layer.) However, that child might
// never have created its own display list or have an obsolete
// display list. By invalidating the child we ensure the display
// list is in sync with the content of the hardware layer.
for (int i = 0; i < mChildrenCount; i++) {
View child = mChildren[i];
if (child.mLayerType != LAYER_TYPE_NONE) {
child.invalidate(true);
}
}
}
}
/**