Closed Bug 411597 Opened 17 years ago Closed 17 years ago

Spurious mouseout event with overlapped divs

Categories

(Core :: Widget: Cocoa, defect, P2)

x86
macOS
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: kinetik, Assigned: kinetik)

Details

(Keywords: regression, testcase)

Attachments

(2 files, 2 obsolete files)

While running through testcases to test a fix for bug #297080 on Linux/GTK2, I noticed that the problem reported in bug #125386 still occurs on Mac OS X in trunk. The OS X fix in bug #125386 was for the pre-Cocoa widget code. Requesting blocking, as this is a regression--buggy behaviour would've returned when we switched to Cocoa widgets. This is Mac/Cocoa only, does not occur on Linux/GTK2 or Windows.
Flags: blocking1.9?
To save reading bug #125386, to use the attached testcase, move the mouse into the green "menu 2" div and move it slowly from left to right so that it passes over the "long list" scrollable div. "menu 2" overlaps the "lost list" div, and when the mouse passes over the overlapping point, "menu 2" will receive spurious mouseexit events.
Flags: blocking1.9? → blocking1.9+
Priority: -- → P2
Attached patch patch (obsolete) — Splinter Review
Event coordinates for mouse exit events of the last entered widget should be calculated relative to the last entered widget, not the current widget.
Attachment #300082 - Flags: superreview?(joshmoz)
Attachment #300082 - Flags: review?(joshmoz)
Attachment #300082 - Attachment is obsolete: true
Attachment #300085 - Flags: superreview?
Attachment #300085 - Flags: review?(joshmoz)
Attachment #300082 - Flags: superreview?(joshmoz)
Attachment #300082 - Flags: review?(joshmoz)
Attachment #300085 - Attachment is patch: true
Attachment #300085 - Attachment mime type: application/octet-stream → text/plain
Attachment #300085 - Flags: superreview? → superreview?(joshmoz)
Comment on attachment 300085 [details] [diff] [review] patch v2 - better variable naming Two problems that need to be fixed before we could check this in. First of all, you can't use sLastViewEntered unless you make sure it is non-null. Secondly, please re-calculate the exit event location right before each use in case sLastViewEntered changes. So just don't calculate exitEventLocation before you use it, that way it'll be within an sLastViewEntered null check block and you pick up changes to sLastViewEntered. Thanks for doing this!
Attachment #300085 - Flags: superreview?(joshmoz)
Attachment #300085 - Flags: review?(joshmoz)
Attachment #300085 - Flags: review-
D'oh, you're right, thanks! In an earlier version I was actually doing this, but when I cleaned up the patch I moved the exitEventLocation calculation up with the others and completely missed the null check for sLastViewEntered. Updated patch attached.
Attachment #300085 - Attachment is obsolete: true
Attachment #300096 - Flags: superreview?(joshmoz)
Attachment #300096 - Flags: review?(joshmoz)
Attachment #300096 - Flags: superreview?(roc)
Attachment #300096 - Flags: superreview?(joshmoz)
Attachment #300096 - Flags: review?(joshmoz)
Attachment #300096 - Flags: review+
Attachment #300096 - Flags: superreview?(roc) → superreview+
Keywords: checkin-needed
Assignee: joshmoz → kinetik
landed on trunk, thanks!
Status: NEW → RESOLVED
Closed: 17 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
verified using Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9pre) Gecko/2008050621 Firefox/3.0pre and the testcase from roc --> Verified fixed
Status: RESOLVED → VERIFIED
Keywords: testcase
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: