musescore / musescore/MuseScore

Undo should recall the mode/selection you had on the last step

Open
#23,304 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request UX/interaction
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Your idea

Recall the mode or selection state that was last in play when undo or redo are used, so that undo can be used seamlessly in combination with other keyboard interactions.

Problem to be solved

Undo and redo don't reliably return you to the mode you were in before the last action taken. This prevents you from running certain commands without reselecting an element or changing modes.

Examples:

Undoing shift + arrow actions on a hairpin

  1. Insert a hairpin
  2. Hold shift and press the right arrow several times to extend it
  3. Press undo
  4. Instead of returning the hairpin to its editable state (with the handles showing), it is no longer selected. It must be reselected before you can use the shift + arrow key interaction again.

Adding text from note input mode

  1. Write some notes
  2. Press Cmd + T to insert a text frame (at this point, you're still in note input mode)
  3. Type in text
  4. Press esc to end editing
  5. Press undo
  6. The note is selected, but it's not in note input mode

https://github.com/musescore/MuseScore/assets/20806406/96f07274-c7c1-4d7e-806e-65536ce3a643

Prior art

Figma does this. They even go so far as to include different selections made in the undo stack, which I find useful.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the undo and redo interactions described in the examples, including shift+arrow editing and Cmd+T from note input mode. Compare the mode and selection state before and after each action; done means undo and redo restore the relevant prior state without requiring reselection or mode changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.