I tired putting persist="open" in the folder pane XUL (mailnews/base/resources/content/folderPane.xul) in order to use the new persistance stuff to remember which folders were open... I got the idea from rjc's similar checkin for bookmarks. When I added this attribute, opened some folders and then restarted messenger, all "open" folders had their children ABOVE the opened parent rather than below.
This is a tree bug... so reassigning to David, Mr. "I love trees!"
this also happens when you add open="true" to your rdf template for trees.
reassigning to waterson, hyatt will sit with you on this.
does anyone have any idea where I'd look to try to fix this? i'm trying to work on threads in the thread pane and I want them to be open and of course, if I use open="true" they all open upwards. I'm changing the milestone to M11, because I need it. I'm willing to look into it, but I need some hints if you have them.
hyatt believes that this is caused because the RDF generic builder is creating the <treerow> _after_ it creates and popuplates the <treechildren>; i.e., we get a content model like... <tree> <treechildren> <treeitem> <treechildren> ... </treechildren> <treerow><treecell/></treerow> </treeitem> </treechildren> </tree> We should look at the DOM that gets generated and verify that this is the case...
I've been looking into this actually, and this is exactly what happens, I've verified this by looking at the DOM that's created. I haven't tracked it down in the code yet, but I'm quite certain it's the generic builder.
in fact, look at FindInsertionPoint() - it special cases for TreeItems and says to insert the element at the first <treechildren> - still trying to figure out if that means After, Before, or Inside this element.
I think that may be a red herring. I'm suspicious that it has something to do with how BuildContentFromTemplate() and EnsureElementHasGenericChild() are interacting...
bulldozer to M12
pull back to M11. i have a fix for this. attaching patch. can somebody review? thanks!
Summary: persist="open" in folder pane causes child folders to appear above parents → [DOGFOOD] persist="open" in folder pane causes child folders to appear above parents
Whiteboard: fix ready
I'm not sure I'm the right person to be reviewing this but it looks like you are now creating the row before creating it's children instead of the opposite which seems to be a good thing in which case I'll say it looks good to me. Just out of curiosity why did this only happen when "open" was specified in the template? I haven't verified Alec's original case for the bug, but I tested it out on the thread example I gave earlier and that works correctly now.
RDF-generated content pays special attention to the "open" attribute, and pretends that no content exists beneath a node that isn't "open". So, when "open" was set, it would recurse down to create children during frame construction, rather than being triggered -later- by an event handler (which'd call RebuildWidgetItem(), which'd happen to get things right).
Status: ASSIGNED → RESOLVED
Last Resolved: 19 years ago
Resolution: --- → FIXED
*** Bug 17128 has been marked as a duplicate of this bug. ***
BULK MOVE: Changing component from XUL to XP Toolkit/Widgets: XUL. XUL component will be deleted.
Component: XUL → XP Toolkit/Widgets: XUL
Massive QA Contact update.
QA Contact: ckritzer → jrgm
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: jrgmorrison → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.