for (; pit <= et.pit(); ++pit) {
pos_type left = (pit == it.pit() ? it.pos() : 0);
pos_type right = (pit == et.pit() ? et.pos() : pars_[pit].size());
- pars_[pit].acceptChanges(left, right);
- // handle imaginary end-of-par character
+ // handle imaginary end-of-par character first
if (right == pars_[pit].size() && !pars_[pit].isUnchanged(right)) {
if (pars_[pit].isInserted(right)) {
pars_[pit].setChange(right, Change(Change::UNCHANGED));
// }
}
}
+
+ pars_[pit].acceptChanges(left, right);
}
finishUndo();
cur.clearSelection();
for (; pit <= et.pit(); ++pit) {
pos_type left = (pit == it.pit() ? it.pos() : 0);
pos_type right = (pit == et.pit() ? et.pos() : pars_[pit].size());
- pars_[pit].rejectChanges(left, right);
- // handle imaginary end-of-par character
+ // handle imaginary end-of-par character first
if (right == pars_[pit].size() && !pars_[pit].isUnchanged(right)) {
if (pars_[pit].isDeleted(right)) {
pars_[pit].setChange(right, Change(Change::UNCHANGED));
// }
}
}
+
+ pars_[pit].rejectChanges(left, right);
}
finishUndo();
cur.clearSelection();