}
-void CursorData::splitUndoGroup() const
-{
- buffer()->undo().splitUndoGroup(*this);
-}
-
-
void CursorData::recordUndo(pit_type from, pit_type to) const
{
buffer()->undo().recordUndo(*this, from, to);
void beginUndoGroup() const;
/// end the current undo group
void endUndoGroup() const;
- /// end abruptly the current group and create a new one wih the same nesting level
- void splitUndoGroup() const;
/// The general case: prepare undo for an arbitrary range.
void recordUndo(pit_type from, pit_type to) const;
}
-void Undo::splitUndoGroup(CursorData const & cur)
-{
- size_t const level = d->group_level_;
- d->group_level_ = 1;
- endUndoGroup(cur);
- beginUndoGroup(cur);
- d->group_level_ = level;
-}
-
-
bool Undo::activeUndoGroup() const
{
return d->group_level_ > 0
void endUndoGroup();
/// end the current undo group and set UndoElement::cur_after if necessary.
void endUndoGroup(CursorData const & cur_after);
- /// end abruptly the current group and create a new one wih the same nesting level
- void splitUndoGroup(CursorData const & cur);
/// return true if an undo group is open and contains at least one element
bool activeUndoGroup() const;
LYXERR(Debug::MATHED, "match found! subst in " << cur.cell()
<< " from: '" << from1_ << "' to '" << to_ << '\'');
- /* To allow undoing the completion, we proceed in 4 steps
- * - inset the raw character
- * - split undo group so that we have two separate undo actions
- * - record undo, delete the character we just entered and the from1_ part
- * - finally, do the insertion of the correction.
- */
- cur.insert(c);
- cur.splitUndoGroup();
- cur.recordUndoSelection();
- cur.cell().erase(cur.pos() - n - 1, cur.pos());
- cur.pos() -= n + 1;
+ cur.cell().erase(cur.pos() - n, cur.pos());
+ cur.pos() -= n;
cur.insert(to_);
return true;