diff options
author | Moonchild <moonchild@palemoon.org> | 2020-05-06 11:15:48 +0000 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-05-06 19:03:37 +0200 |
commit | 320682148b0545376995a767da09d00c718bbc78 (patch) | |
tree | c405793124f202ca37bc176d5e3278895b59d93b | |
parent | 1ed84ac1f81b096c10751d75edabc3e8e03f563a (diff) | |
download | UXP-RELBASE_20200506.tar UXP-RELBASE_20200506.tar.gz UXP-RELBASE_20200506.tar.lz UXP-RELBASE_20200506.tar.xz UXP-RELBASE_20200506.zip |
[XPFE] Properly anchor XUL windows when tearing downRELBASE_20200506
-rw-r--r-- | xpfe/appshell/nsXULWindow.cpp | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/xpfe/appshell/nsXULWindow.cpp b/xpfe/appshell/nsXULWindow.cpp index 8f2d9fde5..585085065 100644 --- a/xpfe/appshell/nsXULWindow.cpp +++ b/xpfe/appshell/nsXULWindow.cpp @@ -455,6 +455,8 @@ NS_IMETHODIMP nsXULWindow::Destroy() if (mDestroying) return NS_OK; + nsCOMPtr<nsIXULWindow> kungFuDeathGrip(this); + mozilla::AutoRestore<bool> guard(mDestroying); mDestroying = true; @@ -467,16 +469,6 @@ NS_IMETHODIMP nsXULWindow::Destroy() if (parentWindow) parentWindow->RemoveChildWindow(this); - // let's make sure the window doesn't get deleted out from under us - // while we are trying to close....this can happen if the docshell - // we close ends up being the last owning reference to this xulwindow - - // XXXTAB This shouldn't be an issue anymore because the ownership model - // only goes in one direction. When webshell container is fully removed - // try removing this... - - nsCOMPtr<nsIXULWindow> placeHolder = this; - // Remove modality (if any) and hide while destroying. More than // a convenience, the hide prevents user interaction with the partially // destroyed window. This is especially necessary when the eldest window |