]> git.lyx.org Git - features.git/commitdiff
Refine fix for bug #9151.
authorEnrico Forestieri <forenr@lyx.org>
Fri, 6 Jun 2014 13:35:24 +0000 (15:35 +0200)
committerEnrico Forestieri <forenr@lyx.org>
Fri, 6 Jun 2014 13:35:24 +0000 (15:35 +0200)
Now the cursor in LyX jumps to the right spot instead of simply the
beginning of the paragraph. This is most useful for branch insets,
for example, which may contain long paragraphs.

src/BufferView.cpp

index afc29be2784dd5107072c0b4a4a78d6626ab5126..301fd2a002b770f2ccee7f80757b6e125cb93713 100644 (file)
@@ -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;