Closed Bug 332597 Opened 18 years ago Closed 17 years ago

plugins don't get native mouse enter or exit events

Categories

(Core :: Widget: Cocoa, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: netdragon, Assigned: jaas)

References

()

Details

(Keywords: regression)

Attachments

(3 files, 1 obsolete file)

Version 2006021400 (1.0)

A div in which Flash takes up the entire space will not receive an onmouseout event. However, if you leave some space inside the absolutely positioned div, it'll receive the event.

Problem shown here:
No absolute positioning -  http://www.unleashthewonder.com/test/brian/onmouseout/test5/
Absolute positioning - http://www.unleashthewonder.com/test/brian/onmouseout/test1/

No problem here:
http://www.unleashthewonder.com/test/brian/onmouseout/test4/

Two additional tests (both receive the event):
no flash - http://www.unleashthewonder.com/test/brian/onmouseout/test2/
flash at bottom of page, but not inside DIV - http://www.unleashthewonder.com/test/brian/onmouseout/test3/
Attached file test swf (ignore) (obsolete) —
Trying to create a test on Bugzilla since I can't guarantee the tests will stay up.
Comment on attachment 217055 [details]
test swf (ignore)

oops
Attachment #217055 - Attachment is obsolete: true
Attached file test swf
Attached file Test page
Test page, showing that no onmouseout happens in Camino. Works in Firefox on Mac.

Flash 8.0.27

<offtopic>I noticed is that test 5 also doesn't work in Firefox on any system either (unless you hold the mouse and drag it over the object, which doesn't work in Camino), yet works in IE (w/o Eolas patch).</offtopic>
I figured out another piece of information: If you use addEventListener instead with setCapture set to true, it catches the event. So it only seems that it's blocked in the bubbling phase.
Simon, is this a dupe of bug 325558, or just related?
Blocks: 225397
OS: All → MacOS X
Hardware: PC → Macintosh
Certainly related. Does this happen in FF? Or on Windows?
This is now reproducible in trunk Firefox (2.x is fine), so moving to Cocoa widget.
Assignee: mikepinkerton → joshmoz
Component: Plug-ins → Widget: Cocoa
Product: Camino → Core
QA Contact: plugins → cocoa
Version: unspecified → Trunk
Summary: Camino doesn't pass mouseout events when Flash object takes up full size of DIV → plugins don't get native mouse enter or exit events
Attached patch fix v1.0Splinter Review
Attachment #279162 - Flags: review?(smichaud)
Flags: blocking1.9+
Keywords: regression
Comment on attachment 279162 [details] [diff] [review]
fix v1.0

It seems odd to use the NPEventType_AdjustCursorEvent event type for
mouse-moved events ... but you're the one whose been doing the testing :-)
And in any case there isn't a "mouse-moved" event type, so if you didn't
use the adjustCursorEvent type you'd have to invent a new one.

That quibble aside, the patch looks fine to me.
Attachment #279162 - Flags: review?(smichaud) → review+
Attachment #279162 - Flags: superreview?(pavlov)
WebKit currently doesn't send native events to plugins for mouse moves, but according to Dave Hyatt they consider it a bug and are planning to do so. They plan to use adjustCursorEvent for the "what" field on the native event, which is exactly what my patch here has Gecko do.

If you're wondering how Flash mouse tracking works in WebKit if they aren't sending the move events, it is because Flash has a workaround that updates the cursor position internally based on the null timer events.
Attachment #279162 - Flags: superreview?(pavlov) → superreview?(roc)
Attachment #279162 - Flags: superreview?(roc) → superreview+
landed on trunk
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: