Closed Bug 344238 Opened 18 years ago Closed 18 years ago

<marquee> tag causes context menu highlight to flicker

Categories

(Core :: General, defect)

1.8 Branch
PowerPC
macOS
defect
Not set
normal

Tracking

()

VERIFIED FIXED

People

(Reporter: beltzner, Assigned: mark)

References

()

Details

(Keywords: regression, verified1.8.1)

Attachments

(2 files)

Using: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1b1) Gecko/20060710 BonEcho/2.0b1

STR:

1. Go to URL or any cracked.com blog
2. Right click in the page, watch the statusbar and the menuhighlight on the context menu

Expected: clean highlight
Actual  : flickers and never fully highlights

This seems to be related to the use of the <marquee> tag, and seems to be Mac only.
Product: Firefox → Core
QA Contact: general → general
Version: 2.0 Branch → 1.8 Branch
Regression on trunk and 1.8[.1] branch, works properly in 1.8.0
Keywords: regression
Looks like a regression from bug 340592.
Blocks: 340592
P.S. this is mine.
Assignee: nobody → mark
The root of the problem was that widgets in the top-level window weren't being sent NS_MOUSE_EXIT events when the mouse moved over the popup.  Because popups and their top-level windows are both "active" simulatenously, it makes sense for a popup to share an nsEventDispatchHandler with its top-level window.  The nsEventDispatchHandler keeps track of the last-pointed widget and it was a global object until bug 340592 made it one per native window.  Being native windows, popups got their own nsEventDispatchHandler objects and thus were unable to send NS_MOUSE_EXIT events to a last-pointed widget in a top-level window because they had no idea that there was a last-pointed widget.  This change keeps the per-window nsEventDispatchHandler with the exception that popups don't get their own.  They get the top-level window's, so we're able to track enters and exits properly during mouse moves between a popup and the top-level it's attached to.
Attachment #228988 - Flags: review?(joshmoz)
Comment on attachment 228988 [details] [diff] [review]
Make popups use the same EventDispatchHandler as their top-level windows

+    while (widget && (widget = widget->GetParent()))
+      topWidget = widget;
+
+    nsCOMPtr<nsPIWidgetMac_MOZILLA_1_8_BRANCH> parentMacWindow =
+     do_QueryInterface(topWidget);

Should probably put a null check after the loop in case it gets 0 iterations for some reason.
Attachment #228988 - Flags: review?(joshmoz) → review+
Attachment #228988 - Flags: superreview?(bryner)
Attachment #228988 - Flags: superreview?(bryner) → superreview+
Comment on attachment 228988 [details] [diff] [review]
Make popups use the same EventDispatchHandler as their top-level windows

Checked in on the trunk.
Attachment #228988 - Flags: approval1.8.1?
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Comment on attachment 228988 [details] [diff] [review]
Make popups use the same EventDispatchHandler as their top-level windows

a=mconnor on behalf of drivers for checkin by Wednesday, July 19th
Attachment #228988 - Flags: approval1.8.1? → approval1.8.1+
Checked in on MOZILLA_1_8_BRANCH for 1.8.1b2.
Keywords: fixed1.8.1
Depends on: 346878
Status: RESOLVED → VERIFIED
Looks like the patch for this might have caused bug 346318. Any ideas Mark?
Depends on: 353716
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: