Closed Bug 49096 Opened 24 years ago Closed 24 years ago

category tree flickers when you open prefs dialog

Categories

(SeaMonkey :: Preferences, defect, P3)

defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: bugzilla, Assigned: hyatt)

Details

(Keywords: platform-parity, polish, regression, Whiteboard: [nsbeta3-])

Attachments

(2 files)

this has been around for a week or two... asa/rkaa/blake, could you let us know
if you see this on the mozilla bits? basically on all platforms in the
commercial build.

to repro: open up the Preferences dialog. observe that the category tree (left
panel) is momentarily all expanded (ie, all categories displayed) then flickers
annoyingly for about 2-3sec as the parent categories are being collapsed.

ben/hyatt/jrgm, any ideas what's causing this?
keywords added...would this be easy to fix?
confirming on linux m18 from pub/mozilla/nigthly 2000081509
In this build it seems to collapse quicker than it used to be, took longer time
in the build from the 13th,and was thus more visibly bugged, but it's still a
little "noisy".
I wonder if it's only the "advanced" cathegory that collapses today?
("Appearance" and "Navigator" opens unfolded and remain that way)
pretty sure this is already reported. 
asa, i couldn't find it after a few queries --if you find an earlier existing
bug, feel free to dup this. thx!
ahh i searched as well - for all bugs, all resoutions, all components, with
words "preferences" or "prefs" in summary, altered during the past 15 days:
nothing relevant turned up.
nav triage team:
nsbeta3-
Whiteboard: [nsbeta3-]
I saw this in an 8/10/2000 build before meetzilla under FreeBSD.  The categories
(especially Advanced) open and close a few times.  This was with a fresh default
profile; first time opening prefs.

I don't notice it in Win32 2000082313
I wonder.. if this has been fixed.
Testing on linux 2000082316 i don't see the flicker, in addition it now seems
the menu for the appropriate menus open when prefs start:

If i open from navigator: "navigator" item opens pre-unfolded and preselected.
In addition "Appearance" is also pre-unfolded, which also seems right.

If i open from mailnews it's the "mail and news" item that is unfolded and
preselected. (Again "Appearance" is pre-unfolder, not quite as required here but
not a real bug.)

If i start from Composer, composer-item is preselected and pre-unfolded.
(And "Appearance" once again.)

None of the unfolded appearances mentioned above cause flickering anymore, and
menus are presented in an easily accessible and intuitive manner.
I suspect this is boiling down to a WFM.
hrm, i no longer see the flickering with these builds/skins (all are opt
commercial):

mac 2000.08.25.04, blue or modern
winNT 2000.08.25.08, modern (blue isn't in this build)
linux 2000.08.25.08, blue or modern

marking wfm, for the nonce at least...
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → WORKSFORME
agh, i just saw this on linux (same bits, modern skin). now this is happening
erratically. what joy. reopening.
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
i believe this is linux-only (wfm, 2000082508 win98), with the noted exception
that randall saw it on FreeBSD previously.  Or do you see this in mac?
Keywords: pp
OS: All → Linux
Hardware: All → PC
seeing this on win32 mozilla bits 082513 on NT
happens on all platforms (i saw it today on mac looking at simon's debug build).
OS: Linux → All
Hardware: PC → All
I would really like david to fix this bug.
Assignee: ben → hyatt
Status: REOPENED → NEW
I would too.  Unfortunately, none of us has any idea why it's happening.
r=danm
+
+   // We get notified every time a subframe is loaded. We
+  // need to properly ignore the load of subframes and only really

Nit: make the first comment-line's // line up with the second.

+  // execute our onload handler when we get a notification for ourselves
+  nsCOMPtr<nsISupports> container;
+  nsCOMPtr<nsIDocShellTreeItem> docShellAsItem, parent;
+
+  loader->GetContainer(getter_AddRefs(container));
+  // Is this a frame ?
+  docShellAsItem = do_QueryInterface(container);
+  if (docShellAsItem) {
+    docShellAsItem->GetSameTypeParent(getter_AddRefs(parent));
+  }
+  if (parent)
+    return NS_OK; // We're a subframe. Get out of dodge.

Wow, what a painful way to test for is-a-frame.  I bet it's copy-and-pasted all 
over creation, too.  It looks ok to me, though: sr=brendan@mozilla.org on it if 
you fix that comment alignment.

On to the second patch:

     if (reframe == PR_FALSE && tag && (tag.get() == nsXULAtoms::treechildren ||
-      tag.get() == nsXULAtoms::treeitem || tag.get() == nsXULAtoms::treerow ||
-      tag.get() == nsXULAtoms::treecell))
+      (tag.get() == nsXULAtoms::treeitem && aAttribute != nsXULAtoms::open) 
+      || tag.get() == nsXULAtoms::treerow || ...))

Nit: why did you switch from || at the end of a continued line to at the 
beginning?

Non-nit: this patch I don't understand based on radha's comment.  Can you walk 
me through it?  Thanks,

/be}
A docloaderobserver hears about all frames of the same type that load.  It gets
its OnEndDocLoad method called for each subframe (and for the top-level doc).
Subframes are always called first, since the top-level doc won't be loaded until
the subframes are loaded.

The old code executed the first time any frame loaded, so when one of the doc's
subframes loaded, we'd go ahead and fire the onload handler early.  The new code
checks to see if the thing just loaded is a frame, and if so, it does nothing...
waiting for the notification that will eventually come in that indicates the
top-level doc has fully loaded.
Fixed.
Status: NEW → RESOLVED
Closed: 24 years ago24 years ago
Resolution: --- → FIXED
no more flicker. vrfy using opt comm *trunk* bits 2000.11.13.08 on mac, linux
and winnt.
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: