Hello list, while trying to decide how to handle the "Open each folder in new window" option in bgo371156[1], I had to figure out the rules from other parts of the nautilus interface. I analyzed empirically how the various views and sidebars handle modifiers and whatnot when a new file/directory is activated.
What I came up with is this table: _No "Alw Open in New Window" _"Alw Open in New Window"___ / \ / \ | | | Action | Mod | ICON | LIST | PLACES | TREE | ICON | LIST | PLACES | TREE | ----------+-----+------+------+--------+------+------+------+--------+------+ DOUBLE | | SW | SW | SW | SW | NW | NW | NW | NW | CLICK | C | -- | -- | SW | SW | -- | -- | NW | NW | | S | NW | NT | SW | SW | NWC | NWC | NW | NW | | C+S | -- | NT | SW | SW | -- | NWC | NW | NW | ----------+-----+------+------+--------+------+------+------+--------+------+ ENTER | | SW | SW | SW | -- | NW | NW | NW | -- | | C | SW | SW | NW | -- | NW | NW | -- | -- | | S | NT | NT | NT | -- | NWC | NWC | -- | -- | | C+S | NT | NT | SW | -- | NW | NWC | -- | -- | ----------+-----+------+------+--------+------+------+------+--------+------+ BACKSPACE | | SW | SW | // | // | NW | NW | // | // | | C | -- | -- | // | // | -- | -- | // | // | | S | -- | -- | // | // | -- | -- | // | // | | C+S | -- | -- | // | // | -- | -- | // | // | ----------+-----+------+------+--------+------+------+------+--------+------+ ALT+ARROW | | SW | SW | // | // | NW | NW | // | // | | C | -- | -- | // | // | -- | -- | // | // | | S | -- | -- | // | // | NWC | -- | // | // | | C+S | -- | -- | // | // | -- | -- | // | // | ----------+-----+------+------+--------+------+------+------+--------+------+ Each row represents a possible action (e.g., double-click, etc.) plus some modifier (C = control, S = shift, empty string = no modifier). Each column is either a view or a sidebar widget; the first four columns refer to the behavior when "Open each folder in its own window" is disabled, the other four columns when enabled. The possible outcomes are: SW = Open item in the Same Window NW = Open item in a New Window NWC = Open item in a New Window, Close the current window NT = Open item in a New Tab -- = No effect or not handled (handling done by a different widget) // = Not applicable What I can see in this table: - The icon view and the list view often behave differently wrt modifiers. For instance, double click+shift in the icon view means "open in new window", while in the list view it means "open in new tab". - ENTER+mod and double-click+mod behave differently in the places sidebar. - Alt+Arrow Key sometimes reacts to modifiers, sometimes it doesn't. - Handling of Control+Shift varies as well. - Double click (Moreover: - Keynav in the tree sidebar is broken; a new item is opened whenever the selection changes; this is especially a problem when the "Open each folder blah" option is enabled. Bug report here [2]. Enter has no effect. Also, there's no way to expand a directory with keynav only. Bug reports pending. I assume that keynav should behave the same in both sidebars. - Clicking in the tree sidebar with shift or control pressed doesn't work. Bug report here [3].) I guess what I'm asking for is: assuming that views should all behave the same, and likewise for sidebars, what are the rules that should be applied in these cases? A possile solution could look like this: _No "Alw Open in New Window" _"Alw Open in New Window"___ / \ / \ | | | Action | Mod | ICON | LIST | PLACES | TREE | ICON | LIST | PLACES | TREE | ----------+-----+------+------+--------+------+------+------+--------+------+ DOUBLE | | SW | SW | SW | SW | NW | NW | NW | NW | CLICK | C | NW | NW | NW | NW | -- | -- | -- | -- | | S | NT | NT | NT | NT | NWC | NWC | NWC | NWC | | C+S | -- | -- | -- | -- | -- | -- | -- | -- | ----------+-----+------+------+--------+------+------+------+--------+------+ ENTER | | SW | SW | SW | SW | NW | NW | NW | -- | | C | NW | NW | NW | NW | -- | -- | -- | -- | | S | NT | NT | NT | NT | NWC | NWC | NWC | NWC | | C+S | -- | -- | | -- | -- | -- | -- | -- | ----------+-----+------+------+--------+------+------+------+--------+------+ BACKSPACE | | SW | SW | // | // | NW | NW | // | // | | C | NW | NW | // | // | NW | NW | // | // | | S | NT | NT | // | // | NT | NT | // | // | | C+S | -- | -- | // | // | -- | -- | // | // | ----------+-----+------+------+--------+------+------+------+--------+------+ ALT+ARROW | | SW | SW | // | // | NW | NW | // | // | | C | -- | -- | // | // | -- | -- | // | // | | S | -- | -- | // | // | -- | -- | // | // | | C+S | -- | -- | // | // | -- | -- | // | // | ----------+-----+------+------+--------+------+------+------+--------+------+ That is: - Ctrl+Shift should not be accepted - The same modifiers behave the same for different widgets - The same modifiers behave the same for enter, backspace, and double-click - Ignore modsin the ALT+ARROW case, as CLTR/SHIFT+ALT is often used at the window manager level What do you think? I hope this whole thing has some use for others, and is not only a result of my OCD. :-) Cheers, ---- Stefano [1] https://bugzilla.gnome.org/show_bug.cgi?id=371156 [2] https://bugzilla.gnome.org/show_bug.cgi?id=665781 [3] https://bugzilla.gnome.org/show_bug.cgi?id=665785 -- nautilus-list mailing list nautilus-list@gnome.org http://mail.gnome.org/mailman/listinfo/nautilus-list