commit f59dafe898513c2466a7cd33793320ebdfe9035d
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Tue Feb 23 19:19:57 2021 +0100

    Fix cursor position when undoing inset-dissolve.
    
    When invoking inset-dissolve with the cursor in front of the inset,
    add recordUndo call to make sure that the cursor is at the right
    class.
    
    Fixes bug #12164.
---
 src/insets/InsetText.cpp |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp
index fa1f40c..2253ed6 100644
--- a/src/insets/InsetText.cpp
+++ b/src/insets/InsetText.cpp
@@ -327,13 +327,14 @@ void InsetText::doDispatch(Cursor & cur, FuncRequest & 
cmd)
                        || cmd.getArg(0) == insetName(lyxCode());
 
                if (!main_inset && target_inset) {
+                       UndoGroupHelper ugh(&buffer());
                        // Text::dissolveInset assumes that the cursor
                        // is inside the Inset.
-                       if (&cur.inset() != this)
+                       if (&cur.inset() != this) {
+                               cur.recordUndo();
                                cur.pushBackward(*this);
-                       cur.beginUndoGroup();
+                       }
                        text_.dispatch(cur, cmd);
-                       cur.endUndoGroup();
                } else
                        cur.undispatched();
                break;
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to