diff --git a/mozilla/accessible/src/base/nsRootAccessible.cpp b/mozilla/accessible/src/base/nsRootAccessible.cpp index a6b871c559b..6c3a5e857f8 100644 --- a/mozilla/accessible/src/base/nsRootAccessible.cpp +++ b/mozilla/accessible/src/base/nsRootAccessible.cpp @@ -436,7 +436,14 @@ NS_IMETHODIMP nsRootAccessible::HandleEvent(nsIDOMEvent* aEvent) } #else AtkStateChange stateData; - if (eventType.EqualsIgnoreCase("focus") || + if (eventType.EqualsIgnoreCase("unload")) { + nsCOMPtr privateAccDoc = + do_QueryInterface(accessible); + if (privateAccDoc) { + privateAccDoc->Destroy(); + } + } + else if (eventType.EqualsIgnoreCase("focus") || eventType.EqualsIgnoreCase("DOMMenuItemActive")) { if (treeItemAccessible) { // use focused treeitem privAcc = do_QueryInterface(treeItemAccessible); diff --git a/mozilla/widget/src/gtk2/nsWindow.cpp b/mozilla/widget/src/gtk2/nsWindow.cpp index 376d5c27a42..9259502bde8 100644 --- a/mozilla/widget/src/gtk2/nsWindow.cpp +++ b/mozilla/widget/src/gtk2/nsWindow.cpp @@ -395,9 +395,6 @@ nsWindow::Destroy(void) #ifdef ACCESSIBILITY if (mRootAccessible) { - nsCOMPtr accNode(do_QueryInterface(mRootAccessible)); - if (accNode) - accNode->Shutdown(); mRootAccessible = nsnull; } #endif