mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
Fix Bug3171: update bookmark after saveCursor
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16919 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
ff8c0848aa
commit
eb495d2e98
@ -155,6 +155,19 @@ void BufferView::setBuffer(Buffer * b)
|
|||||||
// to this buffer later on.
|
// to this buffer later on.
|
||||||
buffer_->saveCursor(cursor_.selectionBegin(),
|
buffer_->saveCursor(cursor_.selectionBegin(),
|
||||||
cursor_.selectionEnd());
|
cursor_.selectionEnd());
|
||||||
|
// update bookmark pit of the current buffer before switch
|
||||||
|
for (size_t i = 0; i < LyX::ref().session().bookmarks().size(); ++i) {
|
||||||
|
BookmarksSection::Bookmark const & bm = LyX::ref().session().bookmarks().bookmark(i);
|
||||||
|
if (buffer()->fileName() != bm.filename.absFilename())
|
||||||
|
continue;
|
||||||
|
// if par_id or pit has been changed, reset par_pit and par_id
|
||||||
|
// see http://bugzilla.lyx.org/show_bug.cgi?id=3092
|
||||||
|
pit_type new_pit;
|
||||||
|
int new_id;
|
||||||
|
boost::tie(new_pit, new_id) = moveToPosition(bm.par_pit, bm.par_id, bm.par_pos);
|
||||||
|
if (bm.par_pit != new_pit || bm.par_id != new_id)
|
||||||
|
const_cast<BookmarksSection::Bookmark &>(bm).setPos(new_pit, new_id);
|
||||||
|
}
|
||||||
// current buffer is going to be switched-off, save cursor pos
|
// current buffer is going to be switched-off, save cursor pos
|
||||||
LyX::ref().session().lastFilePos().save(FileName(buffer_->fileName()),
|
LyX::ref().session().lastFilePos().save(FileName(buffer_->fileName()),
|
||||||
boost::tie(cursor_.pit(), cursor_.pos()) );
|
boost::tie(cursor_.pit(), cursor_.pos()) );
|
||||||
|
@ -1165,9 +1165,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
|
|||||||
// --- buffers ----------------------------------------
|
// --- buffers ----------------------------------------
|
||||||
case LFUN_BUFFER_SWITCH:
|
case LFUN_BUFFER_SWITCH:
|
||||||
BOOST_ASSERT(lyx_view_);
|
BOOST_ASSERT(lyx_view_);
|
||||||
// update bookmark pit of the current buffer before switch
|
|
||||||
for (size_t i = 0; i < LyX::ref().session().bookmarks().size(); ++i)
|
|
||||||
gotoBookmark(i+1, false, false);
|
|
||||||
lyx_view_->setBuffer(theBufferList().getBuffer(argument));
|
lyx_view_->setBuffer(theBufferList().getBuffer(argument));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user