ECode ActivityTransitionCoordinator::StripOffscreenViews()
{
    if (mTransitioningViews == NULL) {
        return NOERROR;
    }

    AutoPtr<IRect> r;
    CRect::New((IRect**)&r);
    Int32 size;
    Boolean bval;
    mTransitioningViews->GetSize(&size);
    for (Int32 i = size - 1; i >= 0; i--) {
        AutoPtr<IInterface> obj;
        mTransitioningViews->Get(i, (IInterface**)&obj);
        IView* view = IView::Probe(obj);
        view->GetGlobalVisibleRect(r, &bval);
        if (!bval) {
            mTransitioningViews->Remove(i);
            ShowView(view, TRUE);
        }
    }
    return NOERROR;
}