// Now remove all out of the pars which is NOT allowed in the
// new environment and set also another font if that is required.
+ // Merge paragraphs that are to be pasted into a text inset
+ // that does not allow multiple pars.
+ InsetText * inset_text = target_inset->asInsetText();
+ if (inset_text && !inset_text->allowMultiPar()) {
+ while (insertion.size() > 1)
+ mergeParagraph(buffer.params(), insertion, 0);
+ }
+
// Convert newline to paragraph break in ParbreakIsNewline
if (target_inset->getLayout().parbreakIsNewline()
|| pars[pit].layout().parbreak_is_newline) {
namespace {
-void cutSelectionHelper(Cursor & cur, CutStack & cuts, bool doclear, bool realcut, bool putclip)
+void cutSelectionHelper(Cursor & cur, CutStack & cuts, bool realcut, bool putclip)
{
// This doesn't make sense, if there is no selection
if (!cur.selection())
cur.pos() = endpos;
cur.pit() = endpit;
- // sometimes necessary
- if (doclear
- && text->paragraphs()[begpit].stripLeadingSpaces(bp.track_changes))
- cur.fixIfBroken();
-
// need a valid cursor. (Lgb)
cur.clearSelection();
} // namespace
-void cutSelection(Cursor & cur, bool doclear, bool realcut)
+void cutSelection(Cursor & cur, bool realcut)
{
- cutSelectionHelper(cur, theCuts, doclear, realcut, true);
+ cutSelectionHelper(cur, theCuts, realcut, true);
}
-void cutSelectionToTemp(Cursor & cur, bool doclear, bool realcut)
+void cutSelectionToTemp(Cursor & cur, bool realcut)
{
- cutSelectionHelper(cur, tempCut, doclear, realcut, false);
+ cutSelectionHelper(cur, tempCut, realcut, false);
}
}
+void copySelectionToTemp(Cursor & cur)
+{
+ copySelectionToStack(cur, tempCut);
+}
+
+
void copySelection(Cursor const & cur, docstring const & plaintext)
{
// In tablemode, because copy and paste actually use special table stack
return;
cur.recordUndo();
- cutSelection(cur, true, false);
+ cutSelection(cur, false);
if (asParagraphs)
cur.text()->insertStringAsParagraphs(cur, text, cur.current_font);
else
par.insertChar(pos, *cit, font, cur.buffer()->params().track_changes);
// Cut the selection
- cutSelection(cur, true, false);
+ cutSelection(cur, false);
}
void replaceSelection(Cursor & cur)
{
if (cur.selection())
- cutSelection(cur, true, false);
+ cutSelection(cur, false);
}