commit 79dcf402b1fb64de7c6dfd2104a9496cdfe70230
Author: Enrico Forestieri <for...@lyx.org>
Date:   Fri Jun 6 15:35:24 2014 +0200

    Refine fix for bug #9151.
    
    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.

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index afc29be..301fd2a 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;

Reply via email to