void EnterTransitionCoordinator::OnTakeSharedElements() { if (!mIsReadyForTransition || mSharedElementsBundle == NULL) { return; } AutoPtr<IBundle> sharedElementState = mSharedElementsBundle; mSharedElementsBundle = NULL; AutoPtr<IViewGroup> vg; GetDecor((IViewGroup**)&vg); IView* decorView = IView::Probe(vg); if (decorView != NULL) { AutoPtr<IViewTreeObserver> vto; decorView->GetViewTreeObserver((IViewTreeObserver**)&vto); AutoPtr<IOnPreDrawListener> listener = new TakeSharedElementsOnPreDrawListener( this, decorView, sharedElementState); vto->AddOnPreDrawListener(listener); decorView->Invalidate(); } }