From e1b2466faf6973946a6c86f24814f060be31e285 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Sat, 24 Sep 2011 18:21:41 +0000 Subject: [PATCH] Fix bug #3821 by allowing insertStringAs* to reset the cursor. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39752 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/CutAndPaste.cpp | 1 + src/Text.cpp | 11 ++++++----- src/Text.h | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/CutAndPaste.cpp b/src/CutAndPaste.cpp index 0d70c2fb47..b9e6bd41ce 100644 --- a/src/CutAndPaste.cpp +++ b/src/CutAndPaste.cpp @@ -1045,6 +1045,7 @@ void pasteClipboardText(Cursor & cur, ErrorList & errorList, bool asParagraphs) cur.text()->insertStringAsParagraphs(cur, text, cur.current_font); else cur.text()->insertStringAsLines(cur, text, cur.current_font); + cur.setSelection(); } diff --git a/src/Text.cpp b/src/Text.cpp index 8996a795d1..88a1a46280 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -755,12 +755,12 @@ void Text::breakParagraph(Cursor & cur, bool inverse_logic) // needed to insert the selection -void Text::insertStringAsLines(DocIterator const & dit, docstring const & str, +void Text::insertStringAsLines(Cursor & cur, docstring const & str, Font const & font) { BufferParams const & bparams = owner_->buffer().params(); - pit_type pit = dit.pit(); - pos_type pos = dit.pos(); + pit_type pit = cur.pit(); + pos_type pos = cur.pos(); // insert the string, don't insert doublespace bool space_inserted = true; @@ -802,12 +802,13 @@ void Text::insertStringAsLines(DocIterator const & dit, docstring const & str, space_inserted = (*cit == ' '); } } + setCursor(cur, pit, pos); } // turn double CR to single CR, others are converted into one // blank. Then insertStringAsLines is called -void Text::insertStringAsParagraphs(DocIterator const & dit, docstring const & str, +void Text::insertStringAsParagraphs(Cursor & cur, docstring const & str, Font const & font) { docstring linestr = str; @@ -829,7 +830,7 @@ void Text::insertStringAsParagraphs(DocIterator const & dit, docstring const & s newline_inserted = false; } } - insertStringAsLines(dit, linestr, font); + insertStringAsLines(cur, linestr, font); } diff --git a/src/Text.h b/src/Text.h index f4110e260f..60b6130cc4 100644 --- a/src/Text.h +++ b/src/Text.h @@ -263,10 +263,10 @@ public: /* these things are for search and replace */ /// needed to insert the selection - void insertStringAsLines(DocIterator const & dit, docstring const & str, + void insertStringAsLines(Cursor & cur, docstring const & str, Font const & font); /// needed to insert the selection - void insertStringAsParagraphs(DocIterator const & dit, docstring const & str, + void insertStringAsParagraphs(Cursor & cur, docstring const & str, Font const & font); /// access to our paragraphs -- 2.39.2