void WKCACFLayer::removeSublayer(const WKCACFLayer* sublayer) { int foundIndex = indexOfSublayer(sublayer); if (foundIndex == -1) return; CACFLayerRemoveFromSuperlayer(sublayer->layer()); setNeedsCommit(); }
void LayerCompositingThread::removeSublayer(LayerCompositingThread* sublayer) { ASSERT(isCompositingThread()); int foundIndex = indexOfSublayer(sublayer); if (foundIndex == -1) return; sublayer->setSuperlayer(0); m_sublayers.remove(foundIndex); }
void WKCACFLayer::insertSublayerBelowLayer(PassRefPtr<WKCACFLayer> sublayer, const WKCACFLayer* reference) { if (!reference) { insertSublayer(sublayer, 0); return; } int referenceIndex = indexOfSublayer(reference); if (referenceIndex == -1) { addSublayer(sublayer); return; } insertSublayer(sublayer, referenceIndex); }
void WKCACFLayer::replaceSublayer(WKCACFLayer* reference, PassRefPtr<WKCACFLayer> newLayer) { ASSERT_ARG(reference, reference); ASSERT_ARG(reference, reference->superlayer() == this); if (reference == newLayer) return; if (!newLayer) { removeSublayer(reference); return; } newLayer->removeFromSuperlayer(); int referenceIndex = indexOfSublayer(reference); ASSERT(referenceIndex != -1); if (referenceIndex == -1) return; // FIXME: Can we make this more efficient? The current CACF API doesn't seem to give us a way to do so. reference->removeFromSuperlayer(); insertSublayer(newLayer, referenceIndex); }