]> git.lyx.org Git - features.git/commitdiff
Backporting fix for #3821.
authorRichard Heck <rgheck@comcast.net>
Wed, 26 Oct 2011 16:02:30 +0000 (16:02 +0000)
committerRichard Heck <rgheck@comcast.net>
Wed, 26 Oct 2011 16:02:30 +0000 (16:02 +0000)
Allow insertStringAs* to reset the cursor.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@40015 a592a061-630c-0410-9148-cb99ea01b6c8

src/CutAndPaste.cpp
src/Text.cpp
src/Text.h
status.20x

index c1dc097592492fdb353b237261994a3d8bb13ff6..f3163c162af4e61a367be1d05d5e4f53851c0075 100644 (file)
@@ -1044,6 +1044,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();
 }
 
 
index 7cf206005e541044f9716747c16ff4c8b1b928e7..066d0f9cf95308c279b7f58fce8095ecf231d6b8 100644 (file)
@@ -756,12 +756,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;
@@ -803,12 +803,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;
@@ -830,7 +831,7 @@ void Text::insertStringAsParagraphs(DocIterator const & dit, docstring const & s
                        newline_inserted = false;
                }
        }
-       insertStringAsLines(dit, linestr, font);
+       insertStringAsLines(cur, linestr, font);
 }
 
 
index f4110e260f5fe820ab2a56de19d862fafd3a4d18..60b6130cc4f2ea067d156ad2ec736ef88bc4196c 100644 (file)
@@ -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
index d8716ff9fc422a7fa8fb6199ba9eac6616e2ce9c..4deec4f29a763fb4078eaf7866119d9bc84fe3a0 100644 (file)
@@ -193,6 +193,9 @@ What's new
 
 - Improved scrolling in large tables with vertical alignment (bug 7662).
 
+- Make cursor position after paste independent of where the pasted material
+  comes from (bug 3821).
+
 
 * ADVANCED FIND AND REPLACE