Bug 582057, part c: Initialize default widget init data earlier so that it's always available. r=roc

This commit is contained in:
Chris Jones 2010-08-19 13:49:35 -05:00
parent 39ff0004c3
commit f8dc6c3af2

View File

@ -688,27 +688,25 @@ nsresult nsView::CreateWidget(const nsIID &aWindowIID,
NS_RELEASE(mWindow);
}
nsIntRect trect = CalcWidgetBounds(aWidgetInitData
? aWidgetInitData->mWindowType
: eWindowType_child);
PRBool initDataPassedIn = PR_TRUE;
nsWidgetInitData initData;
if (!aWidgetInitData) {
// No initData, we're a child window
initDataPassedIn = PR_FALSE;
initData.mWindowType = eWindowType_child;
initData.clipChildren = PR_TRUE;
initData.clipSiblings = PR_TRUE;
aWidgetInitData = &initData;
}
aWidgetInitData->mContentType = aContentType;
nsIntRect trect = CalcWidgetBounds(aWidgetInitData->mWindowType);
if (NS_OK == LoadWidget(aWindowIID))
{
nsCOMPtr<nsIDeviceContext> dx;
mViewManager->GetDeviceContext(*getter_AddRefs(dx));
PRBool initDataPassedIn = PR_TRUE;
nsWidgetInitData initData;
if (!aWidgetInitData) {
// No initData, we're a child window
// Create initData to pass in params
initDataPassedIn = PR_FALSE;
initData.clipChildren = PR_TRUE; // Clip child window's children
initData.clipSiblings = PR_TRUE; // Clip child window's siblings
aWidgetInitData = &initData;
}
aWidgetInitData->mContentType = aContentType;
if (aNative && aWidgetInitData->mWindowType != eWindowType_popup)
mWindow->Create(nsnull, aNative, trect, ::HandleEvent, dx, nsnull, nsnull, aWidgetInitData);
else