X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyx_cb.C;h=d437e107b35f9a3103be3a8561aa4969fa47314c;hb=52eb91c94fb70d58dceef430659c8781de2eccda;hp=f40c18d1e4b9ef5abdc63342fac9fe1d157b993b;hpb=5d41611407a908b90f436ec0cfcdf729c3e27c51;p=lyx.git diff --git a/src/lyx_cb.C b/src/lyx_cb.C index f40c18d1e4..d437e107b3 100644 --- a/src/lyx_cb.C +++ b/src/lyx_cb.C @@ -21,6 +21,7 @@ #include "BufferView.h" #include "buffer_funcs.h" #include "cursor.h" +#include "CutAndPaste.h" #include "debug.h" #include "gettext.h" #include "session.h" @@ -30,6 +31,7 @@ #include "lyxrc.h" #include "lyxtext.h" #include "paragraph.h" +#include "undo.h" #include "frontends/Alert.h" #include "frontends/Application.h" @@ -329,18 +331,17 @@ void insertPlaintextFile(BufferView * bv, string const & f, bool asParagraph) if (tmpstr.empty()) return; - // clear the selection - LyXText const & text = bv->buffer()->text(); - if (&text == bv->cursor().innerText()) - bv->cursor().clearSelection(); + LCursor & cur = bv->cursor(); + cap::replaceSelection(cur); + recordUndo(cur); if (asParagraph) - bv->cursor().innerText()->insertStringAsParagraphs(bv->cursor(), tmpstr); + cur.innerText()->insertStringAsParagraphs(cur, tmpstr); else - bv->cursor().innerText()->insertStringAsLines(bv->cursor(), tmpstr); + cur.innerText()->insertStringAsLines(cur, tmpstr); } -// Insert plain text file (if filename is empty, prompt for one) +// Read plain text file (if filename is empty, prompt for one) string getContentsOfPlaintextFile(BufferView * bv, string const & f, bool asParagraph) { FileName fname(f);