Closed Bug 305706 Opened 19 years ago Closed 18 years ago

After a window.open call, personal toolbar overflow remains when it shouldn't.

Categories

(Core :: DOM: Events, defect)

defect
Not set
major

Tracking

()

VERIFIED DUPLICATE of bug 338803

People

(Reporter: stephend, Unassigned)

References

()

Details

(Keywords: regression)

Attachments

(1 file)

Build ID: 2005-08-23-06, Windows XP SeaMonkey.

Summary: After a window.open call, personal toolbar overflow remains when it
shouldn't.

Steps to Reproduce:

1. Have a few bookmarks on your Personal Toolbar.
2. Load the attached testcase and click on the link.
3. Maximize the window that results.

Expected Results:

The personal toolbar should initially overflow (>>), but then on maximize, it
should restore the links back onto itself.

Actual Results:

Personal toolbar overflow remains.
Attached file Testcase
Self-explanatory; see comment 0 for steps.
It appears that not all of the resize events are targetting the xul document,
and so they get filtered out at
http://lxr.mozilla.org/mozilla/source/xpfe/components/bookmarks/resources/bookmarksMenu.js#740.
(it's trying to avoid doing too much work, not just ignoring non-chrome events)

If I use the keyboard (alt-f10) or the wm menu to maximize the window, then the
event targets the xul element at the mouse location.

If I make the window large enough that my WM shows me an actual maximize button,
then the bug does not occur because the event targets the xul document.

I'd be nice if we could catch a maximize event coming in from the OS and force
it to target the document, but I don't know where that would have to be done.
Somewhere in widget/ I suppose. neht ,
CCing people who might know if this is a widget or layout regression
(resize events not having the correct target, that is).
Assignee: jag → events
Component: XP Apps → DOM: Events
Keywords: regression
Product: Mozilla Application Suite → Core
QA Contact: ian
Do we have a regression range?
*** Bug 307038 has been marked as a duplicate of this bug. ***
(In reply to comment #2)
> It appears that not all of the resize events are targetting the xul document,
> and so they get filtered out at
>
http://lxr.mozilla.org/mozilla/source/xpfe/components/bookmarks/resources/bookmarksMenu.js#740.
> (it's trying to avoid doing too much work, not just ignoring non-chrome events)

Could someone try using the "cached width" method of detecting spurious events
(store the current boxobject.width, and when the resizeFunc is called, compare
the new width to the cached width) and see if that solves it?
(In reply to comment #4)
> Do we have a regression range?

This regressed between Windows BuildID 2005081305 and BuildID 2005081716.
I can't tell better as there is no archive of Seamonkey, only Mozilla 1.7.

http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=SeaMonkeyAll&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=explicit&mindate=2005-08-13+00%3A00&maxdate=2005-08-17+17%3A00&cvsroot=%2Fcvsroot

I don't know if this bug is related:
Bug 304753  	[FIX]nsImageMap is too eager to invalidate on attribute changes
Weird... for some reason my resize events are getting a current frame.
But the code looks just like those for load events, which work fine...
Yea, I thought I had set this to all platforms at some point…
OS: Windows XP → All
Hardware: PC → All
Hmm... I see nothing in that range that would cause event targets to change.

And as far as that goes, I see this on Linux with trunk Seamonkey build
2004-07-24-05.
OK, so both bug 20022 and 284664 contribute to this regression, by leaving stale
frames around in the ESM that get picked up by the resize event.

Bug 20022 contributes because it doesn't want to do all the DOM event handling,
but unfortuately fails to match a PreHandleEvent with a PostHandleEvent.

Bug 284664 contributes because the code uses a quick and dirty hack to dispatch
the mouse enter event, which only works in the current ESM because it's in the
middle of dispatching a mouse move event, and the patch made it use the hack in
parent ESMs too, where it leaves a stale frame.
Blocks: 20022, 284664
So is this similar to bug 295340 in terms of the event targeting mess?
Well, the resize event fires off a timer, and sees stale frames stored in the
ESM from the mouseover events rather than frames from nested events, but if the
ESM frames are removed to fix bug 295340 then that should fix this bug too.
(In reply to comment #16)
> I just landed the fix to bug 20022 comment 130.

Though it's much better now, this still happens occasionally if you resize the
window horizontally, after doing the steps in comment 0.
(In reply to comment #18)
> Do we want to dupe this to bug 338803?

Sorry for the delay; yeah, we do.  It's definitely fixed, at least for me using build 2006-06-06-10 of SeaMonkey trunk on Windows XP. 



*** This bug has been marked as a duplicate of 338803 ***
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → DUPLICATE
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: