Closed Bug 117954 Opened 24 years ago Closed 23 years ago

Auto-close springloaded folders except the destination folder

Categories

(Core :: XUL, enhancement)

enhancement
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla1.4alpha

People

(Reporter: mythdraug, Assigned: janv)

References

Details

(Whiteboard: [adt2])

Attachments

(1 file, 6 obsolete files)

While cleaning up my inbox. I found muself wishing that after releasing messages into a folder the tree that had sprung open would close itself. eg. Before: v-Inbox |-Sent |-Trash >-Personal >-Work During: v-Inbox |-Sent |-Trash >-Personal v-Work | v-Staff | | |-Foo | | |-Bar | | +-Jones | >-Support >-Personal After: v-Inbox |-Sent |-Trash >-Personal >-Work
Status: UNCONFIRMED → NEW
Ever confirmed: true
.
Assignee: hyatt → mpt
Component: XP Toolkit/Widgets → User Interface Design
QA Contact: jrgm → zach
Target Milestone: --- → Future
I think it's better to leave the folder open. If you're dragging several items into one folder, it would be annoying if you had to trigger the springload feature multiple times. I don't use mozmail or bookmark manager often, though, so I don't know whether that's more common than dragging a single item somewhere and then forgetting about it.
My personal behavior when cleanig my inbox is to first sort by sender. Then I select all the messages from that sender and drag them enmasse to the destination folder. Keep in mind I'm not advocating closing all your folders, just the ones that opened on mouseover.
I think that all the UI can do should be possibly undone by the UI. CC'ing Jan Varga, since he has implemented this feature.
Actually not me, but Dean has implemented this feature. So, you want to be able close containers on mouseover (maybe with ctrl key?) Or you want outliner to remember all auto opened containers and then close them after drag session ends ?
taking for now
Component: User Interface Design → XP Toolkit/Widgets: Trees
I was thinking of the latter case. Remember all auto opened containers and then close them after drag session ends
*** Bug 128230 has been marked as a duplicate of this bug. ***
When you drop items in a sprung-open folder, that folder should *not* close by itself -- both for the reasons given in comment 2, and because that's how native spring-loaded folders work. However, *during* the drag, sprung-open folders which you mouse out of should spring closed again. --> default owner
Assignee: mpt → hewitt
QA Contact: zach → shrir
Summary: [RFE] autoclose springloaded folders → Auto-close springloaded folders except the destination folder
nominating for Buffy
Keywords: nsbeta1
*** Bug 170605 has been marked as a duplicate of this bug. ***
*** Bug 169102 has been marked as a duplicate of this bug. ***
nsbeta1+/adt2 per the nav triage team.
Keywords: nsbeta1nsbeta1+
Whiteboard: [adt2]
taking
Assignee: hewitt → varga
Attached patch proposed patch (obsolete) — Splinter Review
This patch implements desired behaviour (I hope). I had to add a new member variable |nsVoidArray mArray| which takes 8 bytes at minimum. This array stores indexes of spring loaded folders. Is there a better solution ?
I don't think this should be changed on Windows. Following the example of Windows Explorer springloaded folders remain open regardless of whether something is dropped on them.
cc Patrice for UE input
I agree with comments #2 and #16. Users might not know/see in which folders their mail went if the spring loaded folders close automatically. cc Jennifer for input.
>Users might not know/see in which folders their mail went if the spring loaded folders close automatically They don't close all automatically, drop folder stays opened.
It could be odd for users to suddenly see their folders close and the folder pane (for mail) 'jump' as it re-adjusts itself, without them actually having done something to cause this. Its hard to say without actually seeing it. The folders that were opened in the hierarchy to where the item was actually dropped would stay open though, correct? So just folders the user might have hovered over too long or opened in error (nope, not the folder i want...) would get closed?
>its hard to say without actually seeing it. I attached a patch to this bug which implements this behaviour. Maybe Seth could apply it and show you how it works. >The folders that were opened in the hierarchy to where the item was actually >dropped would stay open though, correct? So just folders the user might have >hovered over too long or opened in error (nope, not the folder i want...) would >get closed? Right, all automatically opened folders except the drop folder get closed. I checked the Finder on Mac OS X and it works this way too.
Target Milestone: Future → mozilla1.4alpha
Attached patch enhanced patch (obsolete) — Splinter Review
this patch does the same as the previous one and additionally: - closes folders after a delay, not immediately (after 1 sec at the moment) - up/down autoscrolling is now dynamic, you can scroll up faster if you move the mouse cursor higher and visa versa
Attachment #105634 - Attachment is obsolete: true
Attached patch better one (obsolete) — Splinter Review
I forgot to check all parent indexes in the hierarchy.
Attachment #114879 - Attachment is obsolete: true
Comment on attachment 114880 [details] [diff] [review] better one This should not be the behavior on Windows.
jag, what do you think ?
Attached patch another one (obsolete) — Splinter Review
Sigh, idle timers. This one should work on windows too.
Attachment #114880 - Attachment is obsolete: true
Attachment #114885 - Flags: superreview?(jaggernaut)
Attachment #114885 - Flags: review?(bryner)
Comment on attachment 114885 [details] [diff] [review] another one Maybe it would be better to use nsValueArray, so you don't have to cast back and forth to pointer types?
Attached patch revised patch (obsolete) — Splinter Review
Attachment #114885 - Attachment is obsolete: true
Attachment #114885 - Flags: superreview?(jaggernaut)
Attachment #114885 - Flags: review?(bryner)
Attachment #116611 - Flags: superreview?(jaggernaut)
Attachment #116611 - Flags: review?(bryner)
Comment on attachment 116611 [details] [diff] [review] revised patch Where's the #ifndef XP_WIN?
Dean, why not on windows ? Just because "it's not the behaviour on windows", we behave differently in other places too, so why not ? Is it your personal feeling or is it really bad from usability point of view ?
The place where people most like experience springloaded folders on Windows is in Explorer. We should behave like that. Just because "we're different elsewhere" doesn't mean we should be different if we can avoid it.
While the final behavior has changed from my initial request, I would still like to see this on Windows.
I think we should mimic the platform behaviour. Windows (w2k) seems to keep all sprung-open folders open, Mac OS X only keeps the one open you dropped into and closes the ones you dragged over (except for the NeXT parallel columns view, it acts like Windows for that case). What do Gnome and KDE specify for this (if anything)? If no behaviour is specified, I would go with the Mac (not NeXT) behaviour.
mkaply, do you want this behavior on OS/2 ? what would be the #ifdef then ?
Dean, jag, thanks for your comments Personally I don't care about windows behavior that much. I just don't like additional #ifdefs in this code which make it less readable.
I know I won't win any popularity votes by suggesting this... But could this be pref'd with appropriate default settings for the various platforms rather than a compile-time #ifdef?
We wouldn't want this springloading on OS/2.
mkaply, you don't want spring loaded folders on OS/2 at all ? This bug is about auto-closing of spring-loaded folders
Sorry, this bug confused me. If by spring loading, you mean open when you drag, heck yeah we want that. Auto closing we don't want. That would be way confusing to the user.
Jan, if you don't want to ifdef the code you could either use nsILookAndFeel or platform-specific default prefs.
Comment on attachment 116611 [details] [diff] [review] revised patch working on a patch that uses the nsILookAndFeel service
Attachment #116611 - Attachment is obsolete: true
Attachment #116611 - Flags: superreview?(jaggernaut)
Attachment #116611 - Flags: review?(bryner)
ok, so I changed all the code to use the nsILookAndFeel service. I added these new metrics: ui.treeOpenDelay = 1000 ui.treeCloseDelay = 1000 ui.treeLazyScrollDelay = 150 ui.treeScrollDelay = 100 ui.treeScrollLinesMax = 3 ui.treeCloseDelay is set to zero on Windows and OS/2, so auto closing is completly disabled on these platforms. I haven't checked if there are any platform specific APIs for such settings. I think that's not important at the moment. The cool thing about the nsILookAndFeel service is the ability to even override these settings in prefs.js Hope this is the last patch for this bug, I want to check it in finally.
Attachment #117142 - Flags: superreview?(jaggernaut)
Attachment #117142 - Flags: review?(bryner)
Blocks: 117415
Attached patch cosmetic changesSplinter Review
Attachment #117142 - Attachment is obsolete: true
Attachment #117142 - Flags: superreview?(jaggernaut)
Attachment #117142 - Flags: review?(bryner)
Attachment #117218 - Flags: superreview?(jaggernaut)
Attachment #117218 - Flags: review?(bryner)
Attachment #117218 - Flags: review?(bryner) → review+
Thanks, Jan, this looks a lot better to me.
Comment on attachment 117218 [details] [diff] [review] cosmetic changes sr=dmose
Attachment #117218 - Flags: superreview?(jaggernaut) → superreview+
checked in FYI, if you want to enable it on Windows, add this to your pref.js: user_pref("ui.treeCloseDelay", 1000);
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
*** Bug 199146 has been marked as a duplicate of this bug. ***
this has been working fine for me using recent builds, so marking verified.
Status: RESOLVED → VERIFIED
Component: XP Toolkit/Widgets: Trees → XUL
QA Contact: shrir → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: