Merge "Remove from top layer list if re-parenting top layer."
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 4acd448..59ac0ec 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -3224,7 +3224,11 @@
         // changed, we don't want this to cause any more work
     }
     if (what & layer_state_t::eReparent) {
+        bool hadParent = layer->hasParent();
         if (layer->reparent(s.parentHandleForChild)) {
+            if (!hadParent) {
+                mCurrentState.layersSortedByZ.remove(layer);
+            }
             flags |= eTransactionNeeded|eTraversalNeeded;
         }
     }