X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCursor.cpp;h=70d31860f662fde0fb094a809f60eabbf2d5a24b;hb=ac3f391b46d25784f3129e24658b73c4bc15febf;hp=98d18fa125938792818e34e4aa3bd93196acf7f6;hpb=4d63bd347b9535ee095b032d292838100106d49d;p=lyx.git diff --git a/src/Cursor.cpp b/src/Cursor.cpp index 98d18fa125..70d31860f6 100644 --- a/src/Cursor.cpp +++ b/src/Cursor.cpp @@ -468,7 +468,7 @@ bool Cursor::posVisRight(bool skip_inset) new_cur.pos() = right_pos; new_cur.boundary(false); if (!skip_inset && - text()->checkAndActivateInsetVisual(new_cur, right_pos>=pos(), false)) { + text()->checkAndActivateInsetVisual(new_cur, right_pos >= pos(), false)) { // we actually move the cursor at the end of this function, for now // we just keep track of the new position in new_cur... LYXERR(Debug::RTL, "entering inset at: " << new_cur.pos()); @@ -968,7 +968,9 @@ void Cursor::setSelection() selection() = true; // A selection with no contents is not a selection // FIXME: doesnt look ok - if (pit() == anchor().pit() && pos() == anchor().pos()) + if (idx() == anchor().idx() && + pit() == anchor().pit() && + pos() == anchor().pos()) selection() = false; } @@ -1998,7 +2000,6 @@ bool Cursor::fixIfBroken() { if (DocIterator::fixIfBroken()) { clearSelection(); - resetAnchor(); return true; } return false; @@ -2090,8 +2091,7 @@ bool Cursor::textUndo() return false; // Set cursor setCursor(dit); - selection() = false; - resetAnchor(); + clearSelection(); fixIfBroken(); return true; } @@ -2105,8 +2105,7 @@ bool Cursor::textRedo() return false; // Set cursor setCursor(dit); - selection() = false; - resetAnchor(); + clearSelection(); fixIfBroken(); return true; } @@ -2118,6 +2117,18 @@ void Cursor::finishUndo() const } +void Cursor::beginUndoGroup() const +{ + bv_->buffer().undo().beginUndoGroup(); +} + + +void Cursor::endUndoGroup() const +{ + bv_->buffer().undo().endUndoGroup(); +} + + void Cursor::recordUndo(UndoKind kind, pit_type from, pit_type to) const { bv_->buffer().undo().recordUndo(*this, kind, from, to);