X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCutAndPaste.C;h=e554ac6311098839dcff14ca605c8e4445001370;hb=52eb91c94fb70d58dceef430659c8781de2eccda;hp=cf09f40b7fe3ae5e9d49eccd7affd7dcab81367a;hpb=6287c958543e6e798e5f9d55b205a7413ab52a91;p=lyx.git diff --git a/src/CutAndPaste.C b/src/CutAndPaste.C index cf09f40b7f..e554ac6311 100644 --- a/src/CutAndPaste.C +++ b/src/CutAndPaste.C @@ -33,7 +33,6 @@ #include "paragraph.h" #include "paragraph_funcs.h" #include "ParagraphParameters.h" -#include "ParagraphList_fwd.h" #include "pariterator.h" #include "undo.h" @@ -49,6 +48,7 @@ #include "frontends/Clipboard.h" #include "frontends/Selection.h" +#include #include #include @@ -642,7 +642,20 @@ void copySelectionToStack() void copySelection(LCursor & cur, docstring const & plaintext) { - copySelectionToStack(cur, theCuts); + // In tablemode, because copy and paste actually use special table stack + // we do not attemp to get selected paragraphs under cursor. Instead, a + // paragraph with the plain text version is generated so that table cells + // can be pasted as pure text somewhere else. + if (cur.selBegin().idx() != cur.selEnd().idx()) { + ParagraphList pars; + Paragraph par; + BufferParams const & bp = cur.buffer().params(); + par.layout(bp.getLyXTextClass().defaultLayout()); + par.insert(0, plaintext, LyXFont(), Change(Change::UNCHANGED)); + pars.push_back(par); + theCuts.push(make_pair(pars, bp.textclass)); + } else + copySelectionToStack(cur, theCuts); // stuff the selection onto the X clipboard, from an explicit copy request putClipboard(theCuts[0].first, theCuts[0].second, plaintext); @@ -652,7 +665,7 @@ void copySelection(LCursor & cur, docstring const & plaintext) void saveSelection(LCursor & cur) { if (lyxerr.debugging(Debug::ACTION)) - lyxerr << "cap::saveSelection: `" + lyxerr << BOOST_CURRENT_FUNCTION << ": `" << to_utf8(cur.selectionAsString(true)) << "'." << endl;