Closed Bug 392652 Opened 12 years ago Closed 12 years ago

nsXULPopupManager::Rollup() should synchronously hide popups

Categories

(Core :: Layout, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla1.9beta1

People

(Reporter: jaas, Assigned: enndeakin)

References

Details

Attachments

(1 file)

Right now nsXULPopupManager::Rollup() hides popups asynchronously. This can be problematic in at least the following order of events...

1. right mouse down event
2. context menu event
3. right mouse down event
4. context menu event

The problem here is that after event #2 a popup is showing, then event #3 results in an async popup hide, which is processed *after* event #4. You end up with no context menu open when there should be one open from #4.

nsXULPopupManager::Rollup() should probably do synchronous hiding. Apparently we can do that so long as nobody calls it from certain bad places. I don't remember what all of those places are so I'll let somebody who knows list that out. Enn?
Flags: blocking1.9?
Flags: blocking1.9? → blocking1.9-
Whiteboard: [wanted-1.9]
I looked at all the callers of Rollup. There are only a couple outside of the widget code which I've changed in this patch. The others are in widget which are ok with calling this synchronously.
Assignee: nobody → enndeakin
Status: NEW → ASSIGNED
Attachment #279781 - Flags: superreview?(bzbarsky)
Attachment #279781 - Flags: review?(bzbarsky)
Comment on attachment 279781 [details] [diff] [review]
call rollup synchronously

Looks reasonable
Attachment #279781 - Flags: superreview?(bzbarsky)
Attachment #279781 - Flags: superreview+
Attachment #279781 - Flags: review?(bzbarsky)
Attachment #279781 - Flags: review+
Attachment #279781 - Flags: approval1.9?
Blocks: 396186
Comment on attachment 279781 [details] [diff] [review]
call rollup synchronously

a=mconnor on behalf of drivers
Attachment #279781 - Flags: approval1.9? → approval1.9+
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Flags: in-testsuite+
Depends on: 397012
OS: Mac OS X → All
Hardware: PC → All
Target Milestone: --- → mozilla1.9 M9
Version: unspecified → Trunk
Flags: wanted1.9+
Whiteboard: [wanted-1.9]
You need to log in before you can comment on or make changes to this bug.