Incoherent modifier handling by views and sidebars



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]