From 5e5eff918dfcaf828a719376ebbee51c9fcd5bc5 Mon Sep 17 00:00:00 2001 From: Matt McClinch Date: Tue, 16 Feb 2021 19:36:31 -0500 Subject: [PATCH] Fix #317631: Deleting all text in edit mode breaks Undo Resolves: https://musescore.org/en/node/317631. If all text is deleted from a text element, the element itself is deleted. In order for undo to restore the text that was deleted, we must reset the element's text to what it was before editing, just prior to removing the element. --- libmscore/textedit.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libmscore/textedit.cpp b/libmscore/textedit.cpp index 53c5bf2ab7ab3..233e463851e56 100644 --- a/libmscore/textedit.cpp +++ b/libmscore/textedit.cpp @@ -135,6 +135,7 @@ void TextBase::endEdit(EditData& ed) // command. Text shouldn't happen to be empty in other cases though. Q_ASSERT(newlyAdded || textWasEdited); + setXmlText(ted->oldXmlText); // reset text to value before editing undo->reopen(); score()->undoRemoveElement(this); ed.element = 0;