View Issue Details

IDProjectCategoryView StatusLast Update
0001733OpenMPTFeature Requestpublic2023-10-25 21:10
Reporter02FD Assigned To 
Status newResolutionopen 
Platformx64OSWindowsOS Version11
Product VersionOpenMPT / libopenmpt 0.7.3 (current stable) 
Summary0001733: Center row to undo/redo toggle

It would be nice to, under the miscellaneous options under OpenMPT's setup, include a toggle for centering the cursor to the position of an undone/redone edit. I frequently lose track of exactly where I entered what I'm undoing/redoing so this would be immensely helpful.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)


Saga Musix

Saga Musix

2023-10-25 19:05

administrator   ~0005800

Definitely a good idea, not sure if we'd even need an option for it. It's how undo/redo works almost anywhere, after all.

The biggest question I see here is actions that span multiple cells. For example you make a 10x10 selection and delete its contents, then undo that. Just pointing the cursor to the upper-right corner of the selection would be weird, because maybe that deletion only removed a single note in the center of the selection. Should the whole selection be restored, not just the cursor? (practically cursor and selection are the same thing in OpenMPT, so it's not a question of technical feasibility.)



2023-10-25 19:18

reporter   ~0005801

The only problem I see is some people won't like it due to jumping cancelling selections. I believe a toggle would be the best way to implement it considering how long it's been this way. Alternatively, the feature could have a toggle that determines if, when a selection is active, whether undoing or redoing moves the cursor or not.

To answer your question, though, other software usually reselects the affected portion so I do believe that's most intuitive.

Saga Musix

Saga Musix

2023-10-25 21:10

administrator   ~0005803

Okay, one technical detail that would be quite relevant to this feature that is missing is that the undo buffer keeps no record of individual columns within a pattern cell; i.e. it doesn't know
that your cursor was placed in the volum column, so the smallest possible unit it can currently set the cursor to is a full cell (note column to parameter column). We would have to keep a copy of the entire cursor state with each undo step in addition to what we already have, so that makes the request more complex to implement.

Issue History

Date Modified Username Field Change
2023-10-25 15:04 02FD New Issue
2023-10-25 19:05 Saga Musix Note Added: 0005800
2023-10-25 19:18 02FD Note Added: 0005801
2023-10-25 21:10 Saga Musix Note Added: 0005803