- par.setLayout(bp.documentClass().plainLayout());
- par.insert(0, plaintext, Font(), Change(Change::UNCHANGED));
- pars.push_back(par);
- theCuts.push(make_pair(pars, bp.documentClassPtr()));
+ if (cur.inMathed()) {
+ Paragraph par;
+ par.setLayout(bp.documentClass().plainLayout());
+ // Replace (column-separating) tabs by space (#4449)
+ docstring const clean_text = subst(plaintext, '\t', ' ');
+ // For pasting into text, we set the language to the paragraph language
+ // (rather than the default_language which is always English; see #11898)
+ par.insert(0, clean_text, Font(sane_font, par.getParLanguage(bp)),
+ Change(Change::UNCHANGED));
+ pars.push_back(par);
+ } else {
+ // Get paragraphs from all cells
+ InsetTabular * table = cur.inset().asInsetTabular();
+ LASSERT(table, return);
+ ParagraphList tplist = table->asParList(cur.selBegin().idx(), cur.selEnd().idx());
+ for (auto & cpar : tplist) {
+ cpar.setLayout(bp.documentClass().plainLayout());
+ pars.push_back(cpar);
+ // since the pars are merged later, we separate them by blank
+ Paragraph epar;
+ epar.insert(0, from_ascii(" "), Font(sane_font, epar.getParLanguage(bp)),
+ Change(Change::UNCHANGED));
+ pars.push_back(epar);
+ }
+ // remove last empty par
+ pars.pop_back();
+ // merge all paragraphs to one
+ while (pars.size() > 1)
+ mergeParagraph(bp, pars, 0);
+ }
+ theCuts.push(make_pair(pars, make_pair(bp.documentClassPtr(), bp.authors())));