Bug 267302 Views should be created by the view manager r+sr=roc

git-svn-id: svn://10.0.0.236/trunk@164914 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
neil%parkwaycc.co.uk
2004-11-04 15:06:50 +00:00
parent 0419316e3e
commit 18c53f2f32
27 changed files with 158 additions and 245 deletions

View File

@@ -90,7 +90,6 @@
#endif
#include "nsIServiceManager.h"
static NS_DEFINE_CID(kCViewCID, NS_VIEW_CID);
static NS_DEFINE_CID(kCChildCID, NS_CHILD_CID);
/******************************************************************************
@@ -698,14 +697,6 @@ nsresult
nsSubDocumentFrame::CreateViewAndWidget(nsContentType aContentType)
{
// create, init, set the parent of the view
nsIView* innerView;
nsresult rv = CallCreateInstance(kCViewCID, &innerView);
if (NS_FAILED(rv)) {
NS_ERROR("Could not create inner view");
return rv;
}
mInnerView = innerView;
nsIView* outerView = GetView();
NS_ASSERTION(outerView, "Must have an outer view already");
nsRect viewBounds(0, 0, 0, 0); // size will be fixed during reflow
@@ -713,8 +704,13 @@ nsSubDocumentFrame::CreateViewAndWidget(nsContentType aContentType)
nsIViewManager* viewMan = outerView->GetViewManager();
// Create the inner view hidden if the outer view is already hidden
// (it won't get hidden properly otherwise)
rv = innerView->Init(viewMan, viewBounds, outerView,
outerView->GetVisibility());
nsIView* innerView = viewMan->CreateView(viewBounds, outerView,
outerView->GetVisibility());
if (!innerView) {
NS_ERROR("Could not create inner view");
return NS_ERROR_OUT_OF_MEMORY;
}
mInnerView = innerView;
viewMan->InsertChild(outerView, innerView, nsnull, PR_TRUE);
nsWidgetInitData initData;