]> git.lyx.org Git - lyx.git/commitdiff
Consider deleted text when inserting quote inset.
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 21 Jan 2013 13:49:45 +0000 (14:49 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 21 Jan 2013 13:49:45 +0000 (14:49 +0100)
This bug was reported against the ubuntu build:
  https://bugs.launchpad.net/bugs/1100046

Additionally, some extra code for avoiding double undo entries has
been removed, since this is handled by grouped undo now.

src/Text3.cpp

index bfb392c63e2227ba34f276b3f44c9885c51b9aac..2893e080f92800e49360e3af0bf3b8078cacb8b3 100644 (file)
@@ -940,15 +940,12 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_NEWLINE_INSERT: {
                InsetNewlineParams inp;
                docstring arg = cmd.argument();
-               // this avoids a double undo
-               // FIXME: should not be needed, ideally
-               if (!cur.selection())
-                       cur.recordUndo();
-               cap::replaceSelection(cur);
                if (arg == "linebreak")
                        inp.kind = InsetNewlineParams::LINEBREAK;
                else
                        inp.kind = InsetNewlineParams::NEWLINE;
+               cap::replaceSelection(cur);
+               cur.recordUndo();
                cur.insert(new InsetNewline(inp));
                cur.posForward();
                moveCursor(cur, false);
@@ -1447,14 +1444,14 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        }
 
        case LFUN_QUOTE_INSERT: {
-               // this avoids a double undo
-               // FIXME: should not be needed, ideally
-               if (!cur.selection())
-                       cur.recordUndo();
                cap::replaceSelection(cur);
+               cur.recordUndo();
 
                Paragraph const & par = cur.paragraph();
                pos_type pos = cur.pos();
+               // Ignore deleted text before cursor
+               while (pos > 0 && par.isDeleted(pos - 1))
+                       --pos;
 
                BufferParams const & bufparams = bv->buffer().params();
                bool const hebrew =