void View::InvalidateScreenClipping() { // TODO: appearantly, we are calling ScreenClipping() on // views who's parents don't have a valid screen clipping yet, // this messes up the logic that for any given view with // fScreenClippingValid == false, all children have // fScreenClippingValid == false too. If this could be made the // case, we could save some performance here with the commented // out check, since InvalidateScreenClipping() might be called // frequently. // TODO: investigate, if InvalidateScreenClipping() could be // called in "deep" and "non-deep" mode, ie. see if there are // any cases where the children would still have valid screen // clipping, even though the parent's screen clipping becomes // invalid. // if (!fScreenClippingValid) // return; delete fScreenAndUserClipping; fScreenAndUserClipping = NULL; fScreenClippingValid = false; // invalidate the childrens screen clipping as well for (View* child = FirstChild(); child; child = child->NextSibling()) { child->InvalidateScreenClipping(); } }