Open Bug 506513 Opened 15 years ago Updated 2 years ago

Fire popuphidden event when popup frame gets destroyed

Categories

(Core :: XUL, defect)

defect

Tracking

()

People

(Reporter: dao, Unassigned)

References

Details

(Keywords: access, memory-leak)

The Ctrl+Tab and All Tabs panels are hidden in a popuphiding listener (tabPreviewPanelHelper._popuphiding), and apparently this causes the popuphidden event not to be dispatched. The popuphidden handler in popup.xml is expected to reset _prevFocus and _currentFocus, but this doesn't seem to happen in this case.
Adding the 'access' keyword, as this could also affect panels that don't handle focus restoring themselves.
Keywords: access
Naturally, if there's no frame anymore, there's nothing to fire the event.
So it's wontfix/invalid from that perspective? Should popup.xml try handle that case?
It should really be handled in nsXULPopupManager::FirePopupHidingEvent which already restores focus regardlessof whether the frame is present or not. I don't recall or maybe never knew why separate focusing code was added in popup.xml
Severity: normal → S3

Ran into this again in bug 1816496

See Also: → 1816496
Summary: popuphidden event not dispatched when doing panel.hidden=true during popuphiding → Fire popuphidden event when popup frame gets destroyed
You need to log in before you can comment on or make changes to this bug.