#include "support/lyxalgo.h"
#include "support/lyxtime.h"
#include "support/textutils.h"
+#include "support/unique_ptr.h"
#include <sstream>
} else if (token == "\\SpecialChar" ||
(token == "\\SpecialCharNoPassThru" &&
!par.layout().pass_thru && !inset().isPassThru())) {
- auto_ptr<Inset> inset;
- inset.reset(new InsetSpecialChar);
+ auto inset = make_unique<InsetSpecialChar>();
inset->read(lex);
inset->setBuffer(*buf);
par.insertInset(par.size(), inset.release(), font, change);
docstring const s = ltrim(lex.getDocString(), "\\");
par.insert(par.size(), s, font, change);
} else if (token == "\\IPAChar") {
- auto_ptr<Inset> inset;
- inset.reset(new InsetIPAChar);
+ auto inset = make_unique<InsetIPAChar>();
inset->read(lex);
inset->setBuffer(*buf);
par.insertInset(par.size(), inset.release(), font, change);
} else if (token == "\\backslash") {
par.appendChar('\\', font, change);
} else if (token == "\\LyXTable") {
- auto_ptr<Inset> inset(new InsetTabular(buf));
+ auto inset = make_unique<InsetTabular>(buf);
inset->read(lex);
par.insertInset(par.size(), inset.release(), font, change);
} else if (token == "\\change_unchanged") {
else {
docstring const & lay = cur.paragraph().usePlainLayout()
? tclass.plainLayoutName() : tclass.defaultLayoutName();
- setLayout(cur, lay);
+ if (lay != layout.name())
+ setLayout(cur, lay);
}
return;
}
return dissolveInset(cur);
if (!par.isMergedOnEndOfParDeletion(cur.buffer()->params().track_changes)) {
+ cur.recordUndo(DELETE_UNDO);
par.setChange(cur.pos(), Change(Change::DELETED));
cur.forwardPos();
needsUpdate = true;