nsRect invalid(0,0,0,0);
nsRect invalid;
nsSplitterFrameImpl::ResizeChildTo(nscoord& aDiff,                                    nsSplitterInfo* aChildrenBeforeInfos,                                    nsSplitterInfo* aChildrenAfterInfos,                                    PRInt32 aChildrenBeforeCount,                                    PRInt32 aChildrenAfterCount,                                    PRBool aBounded){   nscoord spaceLeft;  AddRemoveSpace(aDiff, aChildrenBeforeInfos,aChildrenBeforeCount,spaceLeft);  // if there is any space left over remove it from the dif we were originally given  aDiff -= spaceLeft;  AddRemoveSpace(-aDiff, aChildrenAfterInfos,aChildrenAfterCount,spaceLeft);  if (spaceLeft != 0) {    if (aBounded) {       aDiff += spaceLeft;       AddRemoveSpace(spaceLeft, aChildrenBeforeInfos,aChildrenBeforeCount,spaceLeft);    } else {      spaceLeft = 0;    }  }  const nsRect& r = mSplitter->mRect;  nsRect vr;  nsCOMPtr<nsIViewManager> vm;  nsIView *v;  mSplitter->GetView(&v);  v->GetViewManager(*getter_AddRefs(vm));  v->GetBounds(vr);  nsRect invalid(0,0,0,0);  if (mParentBox->IsHorizontal()) {      mSplitter->MoveTo(mSplitterPos + aDiff, r.y);      vm->MoveViewTo(v, mSplitterViewPos + aDiff, vr.y);      invalid.width = r.width + PR_ABS(aDiff);      invalid.x = PR_MAX(mSplitterPos,mSplitterPos + aDiff);  } else {      mSplitter->MoveTo(r.x, mSplitterPos + aDiff);      vm->MoveViewTo(v, vr.x, mSplitterViewPos + aDiff);      invalid.height = r.height + PR_ABS(aDiff);      invalid.y = PR_MAX(mSplitterPos, mSplitterPos + aDiff);  }  // redraw immediately only what changed. This is animation so   // it must be immediate.  mParentBox->Invalidate(invalid, PR_TRUE);}