Closed Bug 515003 Opened 14 years ago Closed 14 years ago

Reorganize mouse event handling by introducing a ChildViewMouseTracker


(Core :: Widget: Cocoa, defect)

Not set





(Reporter: mstange, Assigned: mstange)




(1 file, 1 obsolete file)

Attached patch wip (obsolete) — Splinter Review
A little code reorganization.

 - Event redirection now only happens once. Before this patch it worked like
     event over right window? no -> redirect. event over right window? yes. ->
     event over right view? no -> redirect. event over right view? yes. send.
   Now it works like this:
     find window for event, find view for event, send.

 - Mouse enter and exit events are now only sent from one place in a
   straightforward way.

 - About 160 lines less code.

I haven't tested this as much as I should, so I'm not requesting review yet. I'll probably have to go through every single fixed Cocoa mouse event bug and attempt to reproduce it. I've already gone through some and haven't found any problems, but I still need to test more.
The scariest part of the patch is probably the removal of the calls to ensureCorrectMouseEventTarget in all the mouse down methods. I don't seem to have regressed bug 385034, but it's still scary.
Depends on: 516673
No longer depends on: 516673
Depends on: 470845
Attached patch v2Splinter Review
Includes bug 470845 and fixes some bugs, e.g. the wrong coordinates in mouseexit events from popup windows; or the pixel row under popup windows.
Attachment #399028 - Attachment is obsolete: true
Attachment #401773 - Flags: review?(joshmoz)
Attachment #401773 - Flags: review?(joshmoz) → review+
When this lands we should file a bug on adding some mouse event tests for plugins.
Closed: 14 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.3a1
Filed bug 518278 for creating mouse event tests for plugins.
Depends on: 520871
Hi. Am trying to pinpoint the origin of a regression introduced during ff 3.6 development, before reporting it, and I was wondering if it could be related to this patch.

Pretty much, the issue is that a click event triggers a bogus mouseMove event dispatched with coordinates having an offset of -(screenX, screenY).

Some notes are here: (zap directly to "update 2" down the page).

Your bug is not related to this patch because this patch isn't included in Firefox 3.6. Please file a new bug. Then follow these guidelines:
Will do.
Thanks for the info.
Depends on: 541904
Blocks: 345219
You need to log in before you can comment on or make changes to this bug.