зеркало из https://github.com/mozilla/gecko-dev.git
Bug 347743 related fix: make SetParent actually change the parent of the widget. r+sr=roc.
This commit is contained in:
Родитель
a9712ad6f2
Коммит
83621eeae8
|
@ -1636,9 +1636,20 @@ NS_METHOD nsWindow::Destroy()
|
|||
NS_IMETHODIMP nsWindow::SetParent(nsIWidget *aNewParent)
|
||||
{
|
||||
if (aNewParent) {
|
||||
nsCOMPtr<nsIWidget> kungFuDeathGrip(this);
|
||||
|
||||
nsIWidget* parent = GetParent();
|
||||
if (parent) {
|
||||
parent->RemoveChild(this);
|
||||
}
|
||||
|
||||
HWND newParent = (HWND)aNewParent->GetNativeData(NS_NATIVE_WINDOW);
|
||||
NS_ASSERTION(newParent, "Parent widget has a null native window handle");
|
||||
::SetParent(mWnd, newParent);
|
||||
if (newParent && mWnd) {
|
||||
::SetParent(mWnd, newParent);
|
||||
}
|
||||
|
||||
aNewParent->AddChild(this);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче