// ERT paragraphs have the Language latex_language.
// This is invalid outside of ERT, so we need to change it
// to the buffer language.
- if (it->ownerCode() == ERT_CODE || it->ownerCode() == LISTINGS_CODE) {
+ if (it->ownerCode() == ERT_CODE || it->ownerCode() == LISTINGS_CODE)
it->changeLanguage(buf.params(), latex_language, buf.language());
- }
+
it->setInsetOwner(0);
}
- // do not copy text (also nested in insets) which is marked as deleted
- acceptChanges(copy_pars, buf.params());
+ // do not copy text (also nested in insets) which is marked as deleted,
+ // unless the whole selection was deleted
+ if (!isFullyDeleted(copy_pars))
+ acceptChanges(copy_pars, buf.params());
DocumentClass * d = const_cast<DocumentClass *>(dc);
cutstack.push(make_pair(copy_pars, d));
copySelectionHelper(*cur.buffer(), pars, par, cur.selEnd().pit(),
pos, cur.selEnd().pos(),
cur.buffer()->params().documentClassPtr(), cutstack);
- dirtyTabularStack(false);
+
+ // Reset the dirty_tabular_stack_ flag only when something
+ // is copied to the clipboard (not to the selectionBuffer).
+ if (&cutstack == &theCuts)
+ dirtyTabularStack(false);
}
if (cur.inMathed()) {