Proposal Cursor Behaviour Improvements

From Audacity Wiki
Jump to: navigation, search
Proposal pages help us get from feature requests into actual plans. This proposal page is about the selection cursor and making its behaviour consistent with the selection range.
Proposal pages are used on an ongoing basis by the Audacity development team and are open to edits from visitors to the wiki. They are a good way to get community feedback on a proposal.


  • Note: Proposals for Google Summer of Code projects are significantly different in structure, are submitted via Google's web app and may or may not have a corresponding proposal page.

The Problem

The editing cursor behaves differently from a selection range vis a vis track selection.

  1. A cursor can exist in a track that is not selected, whereas a selection range cannot
  2. "Phantom" cursors can be created in certain circumstances (see below)

Developer / QA Backing

  • Bill W

Examples of Current Behaviour

A) The cursor remains in a track even when a track is not selected, generating confusion about what may happen when a user performs an action at the cursor.
B) The time shift tool creates a cursor in the track in which it is clicked, creating a "phantom" cursor that can mimic an actual selection point in that track.
C) Using the arrow keys to change track focus creates a "phantom cursor"

A) Cursor remains when a track is not selected
1. New Project
2. Create three mono audio tracks
3. Generate 5 sec tone in the first two
4. Generate 1 sec chirp in the third, amplitude 0 to 1

(anything else would do, just so it is visually different from the tones)

5. Select track 3 and copy the chirp to the clipboard
6. Delete track 3
7. With the selection tool, click in track 1
8. Press enter - the track is un-selected but the cursor remains
9. Edit > Paste

What should happen? There is a cursor in track 1, so it appears that paste should occur there. But track 1 is not selected, so a new track is created and pasted into at time zero.

Instead ...
7. With the selection tool, drag a selection in track 1
8. Press enter

the track is un-selected and the selection indication in the track goes away. The selection range remains in the time line.

9. Edit > Paste

as above, but this time it makes a bit more sense.

The cursor should not exist in a track that is not selected, just as a selection range does not exist in a track that is not selected.

B) Time shift tool creates a phantom cursor
7. With the selection tool, click in track 1
8. Press enter
9. With the time shift tool, click anywhere in track 2

the cursor moves to track 2

10. Edit > Paste - the paste occurs in a new track.

Also:
7. With the selection tool, click in track 1
8. With the time shift tool, click in track 2

the cursor is extended to track 2, track 1 is selected and track 2 has focus

9. Edit > Paste

the paste occurs at the cursor in track 1.

The time shift tool should not create a cursor in the track where it is clicked.

C) Using arrow keys to change track focus creates a phantom cursor
7. With the selection tool, click in track 1
8. Press enter
9. Press down-arrow

the cursor moves to track 2

10. Edit > Paste - the paste occurs in a new track.

7. With the selection tool, click in track 1
8. Press down-arrow

the cursor is extended to track 2, track 1 is selected and track 2 has focus

9. Edit > Paste - the paste occurs at the cursor in track 1.

This possibly a sub-case of A - the cursor should not exist in a track that is not selected.

None of the above behaviours are incorrect. Editing actions do not take place on a track that is not selected. My point is that display of the editing cursor should follow the same rules as display of a selection range.


New Functionality

Bill 21Apr11
Gale's idea that the phantom cursor that appears in the track clicked-in with the Time Shift tool would be useful as a guide got me thinking.
But this phantom cursor:

  1. does not appear until you release the mouse button
  2. has no "snap-to" functionality

What if ...
A non-selected track that has focus shows a yellow (orange? green?) cursor that behaves as a snap guide? That would be handy. This could be extended to selection regions. If a selection region exists in a track, and you down-arrow to another track, two snap guides appear at the borders of the region.
We have "Align track with cursor" but what if you wanted to align e.g. the third clip in a track with the cursor?
Currently the phantom cursor exists only in the track that has focus. Try it with several tracks in a project. Following on this, these guide cursors would exist only in the track that has focus if it is not also selected. This is not as bad as it sounds. The use case that comes to mind is clicking in a track and playing, stopping, then clicking in a slightly different place etc. until you've found the exact point you want. Then down-arrow into the track that contains the clip you want to move (it could be several tracks down or up) and you have a snap-guide that allows you to align that clip with the cursor. This could also be done by creating a split at the cursor, but that is less elegant. That's how I'd do it now, but I have come to learn that many users are not comfortable using splits for this purpose.

A much simpler solution, of course, is to allow the cursor to be a snap-to point. I was just trying to think of something useful that could be done with that phantom cursor. If we went for the cursor (and selection region edges) being a snap-to point(s), then I would still advocate getting rid of the phantom cursor.

  • Gale 24Apr11: I would be +1 on cursor and selection region edges being snappable in any case, but I don't think that significantly waters down the case for cursor or region-edge guides in unselected, unmuted tracks. The issue is whether/how you distinguish the paste-at cursor from other "guide cursors" or the "region-edge" guides. I actually think both types of "guides" would be very popular. And it would give us the chance to remove the region/cursor inconsistencies we keep stumbling across here. I noticed another - drag the cursor into another track, and the track dragged into remains unselected, but drag a region and the track dragged into is added to the selection. It's "kind of" consistent in that we are saying the region is "more important" than the cursor, but not I think all that logical. I guess dragging the cursor should also select in the dragged-to track.

    Also for all "phantom" guides I think we *must* have the ability to hover over them to get the "pointing hand". It's too hard now to drag from other than the real paste-at cursor.