commit 2a0b22ba9e650ee8be3cd76a636c61656501f90f
Author: Enrico Forestieri <for...@lyx.org>
Date:   Sun Aug 3 16:47:22 2014 +0200

    Fix bug #9151 (Wrong reverse search for images and tables).
    
    If the reverse position corresponds to an inset, its paragraph id
    does not follow the main text numbering. Typically, an inset has
    only a few paragraphs, so that we would jump near the beginning of
    the document. Now the cursor in LyX jumps to the right spot.

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index ae3b640..324c65d 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -2290,10 +2290,17 @@ 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 {
+               else if (dit.depth() > 1) {
+                       // We are in an inset.
+                       pos_type lastpos = dit.lastpos();
+                       dit.pos() = tmppos > lastpos ? lastpos : tmppos;
+                       setCursor(dit);
+                       recenter();
+                       return;
+               } else {
                        newpit = dit.pit();
                        // now have to check pos.
                        newpos = tmppos;
diff --git a/status.21x b/status.21x
index 02b4cd8..5f3fc62 100644
--- a/status.21x
+++ b/status.21x
@@ -80,6 +80,8 @@ What's new
 
 - Fix listings validator with regard to aboveskip and belowskip (bug 7373).
 
+- Fix reverse search in insets (figures, tables, branches, etc.) (bug 9151).
+
 
 * INTERNALS
 

Reply via email to