Audiotool board archive

Unify selection behaviour across the app

Jordi Moragues · started 2017-10-06 18:58 · updated 2017-10-11 23:33

The idea is to apply the same model of selection in the desktop, the timeline and inside regions to give the user a consistent interaction experience everywhere.

Basic behaviour

  • Single-clicking would deselect any previously selected objects and select the clicked object. At present, this doesn't work when the clicked object is part of a pre-existing selection.

  • Click-drag an empty area would deselect any previously selected objects, draw a selection box and select any objects inside or intersecting the box. At present, you need the "select" tool on the desktop for this basic behaviour, but it works on the time-line.

Modifier keys

  • Shift key would behave as in basic behaviour, but preserving any previous selection. At present, this doesn't work on the desktop when single-clicking with the Select tool active, but works on the time-line. When click-dragging, it has a "toggle selection" effect everywhere.

  • Ctrl key would behave as in basic behaviour, but toggling the selection status of any object included in the selection.

My guess is that the desktop view was developed very early and had a more convoluted selection model, and the time-line later, with a more standard one. I think that, especially in the desktop, the basic actions of pointing and selecting in various ways shouldn't need separate tools.

Comments (5)

2017-10-06 21:47 · 2017-10-06

Maybe I'm wrong in testing or interpreting, but it looks like some of these behaviours are implemented in Next:
When you single-click a device in selection mode (2) on the desktop, it selects it.
When you Shift + click another device it adds that device to the current selection.
And when you select device(s) using the selection mode (2) and single-click another device using the pointer tool (1) it selects just that one device.

Again, maybe I'm interpreting this wrong...

2017-10-07 09:59 · 2017-10-07

Yes, those work. But not when you act within a selection. For example, suppose you have a selection of several objects (devices, regions, etc.) If you single-click on a -member- of that selection, nothing happens. Usually in GUIs, this should deselect everything and leave only the clicked object selected. Also, Shift+click (add to selection) doesn't work in selection mode (2) on the desktop. It works on the time-line, though, which doesn't have any selection mode. And, as stated above, Shift+drag has a "toggle" effect on the selection, which is not what you'd expect. My bottom point is that selection in the app isn't consistent with itself or with common standards. I know it's a picky subject, but I believe that it would improve productivity by saving a few clicks and would also make it a bit easier for new users.

Apollo · reply
2017-10-07 14:38 · 2017-10-07

Ah! I see what you're saying. Definitely, worth looking into.

2017-10-10 17:21 · 2017-10-10

I'd attest to the issue of having large tracks; being able to quickly scroll the desktop would be crucially helpful to the workflow
If not, then having a (resizeable) track overview pane overlay the desktop to quickly "teleport" to a desired point on the desktop would be just as good of an idea

2017-10-11 23:33 · 2017-10-11

@andremichelle About panning the desktop: I guess that we just have two contrary opinions about this. I know that panning the desktop by click-dragging an empty area is one of the first things that you do in AT and it's ingrained in every user, and that my suggestion might be radical. But I defend it with the evidence that a lot of software, definitely every software I use, defaults to selection when one just simply click-drags. Navigation and zooming are reserved for special widgets like scroll bars or overview windows, mouse wheels or special modes (basic actions+modifier keys) This is pretty universal. Also, what doesn't feel right to me is that you need two modes (pointer and select) to carry out all tasks related to selecting. It's redundant. Pointer mode should be able to handle every selection task (single, rect, adding, toggling) expected of a pointer. It would simplify the interface, make it faster to grasp for new users and speed up workflow for experienced ones.