* src/text.C
(LyXText::dissolveInset): Reset language to buffer language if the
dissolved inset is an ERT inset.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15888
a592a061-630c-0410-9148-
cb99ea01b6c8
if (isMainText(*cur.bv().buffer()) || cur.inset().nargs() != 1)
return false;
if (isMainText(*cur.bv().buffer()) || cur.inset().nargs() != 1)
return false;
+ bool const in_ert = cur.inset().lyxCode() == InsetBase::ERT_CODE;
recordUndoInset(cur);
cur.selHandle(false);
// save position
recordUndoInset(cur);
cur.selHandle(false);
// save position
// FIXME: change tracking (MG)
cur.paragraph().eraseChar(cur.pos(), b.params().trackChanges);
if (!plist.empty()) {
// FIXME: change tracking (MG)
cur.paragraph().eraseChar(cur.pos(), b.params().trackChanges);
if (!plist.empty()) {
+ if (in_ert) {
+ // ERT paragraphs have the Language latex_language.
+ // This is invalid outside of ERT, so we need to
+ // change it to the buffer language.
+ ParagraphList::iterator it = plist.begin();
+ ParagraphList::iterator it_end = plist.end();
+ for (; it != it_end; it++) {
+ it->changeLanguage(b.params(),
+ latex_language,
+ b.getLanguage());
+ }
+ }
+
pasteParagraphList(cur, plist, b.params().textclass,
b.errorList("Paste"));
// restore position
pasteParagraphList(cur, plist, b.params().textclass,
b.errorList("Paste"));
// restore position