From 687d4c83911185360d0b50b46b792216f1ae7742 Mon Sep 17 00:00:00 2001 From: "jkeiser%netscape.com" Date: Tue, 6 May 2003 00:03:15 +0000 Subject: [PATCH] Fix crash when mouseovering things that disappear (bug 196012), r=peterl@netscape.com, sr=bryner@netscape.com, a=asa --- content/events/src/nsEventStateManager.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/content/events/src/nsEventStateManager.cpp b/content/events/src/nsEventStateManager.cpp index 48e1eb58b502..8f9d0f253fb1 100644 --- a/content/events/src/nsEventStateManager.cpp +++ b/content/events/src/nsEventStateManager.cpp @@ -2604,6 +2604,8 @@ nsEventStateManager::GenerateMouseEnterExit(nsIPresContext* aPresContext, nsGUIE DispatchMouseEvent(aPresContext, aEvent, NS_MOUSE_EXIT_SYNTH, mLastMouseOverElement, mLastMouseOverFrame, targetElement); + // frame may have changed during the call; make sure bit is set + SetFrameExternalReference(mLastMouseOverFrame); // Turn off recursion protection mFirstMouseOutEventElement = nsnull; @@ -2633,6 +2635,9 @@ nsEventStateManager::GenerateMouseEnterExit(nsIPresContext* aPresContext, nsGUIE targetElement, targetFrame, mLastMouseOverElement); mLastMouseOverFrame = targetFrame; + // This may be a different frame than the one we started with, so we + // need to ensure it has its external reference bit set. + SetFrameExternalReference(mLastMouseOverFrame); mLastMouseOverElement = targetElement; // Turn recursion protection back off