diff --git a/src/BufferView.cpp b/src/BufferView.cpp index afc29be278..301fd2a002 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -2292,11 +2292,13 @@ void BufferView::setCursorFromRow(int row) // we need to make sure that the row and position // we got back are valid, because the buffer may well // have changed since we last generated the LaTeX. - DocIterator const dit = buffer_.getParFromID(tmpid); + DocIterator dit = buffer_.getParFromID(tmpid); if (dit == doc_iterator_end(&buffer_)) posvalid = false; else if (dit.depth() > 1) { - // We are an inset. + // We are in an inset. + pos_type lastpos = dit.lastpos(); + dit.pos() = tmppos > lastpos ? lastpos : tmppos; setCursor(dit); recenter(); return;