commit a2e1021aba81371b29bf6a61d184383cffda7f9d
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
Date:   Mon Feb 12 17:11:09 2018 +0100

    Use parMetrics to access the par_metrics_ map
    
    In cursorY, it is dangerous to access par_petrics_[0], since one does
    not know whether metrics have been computed for this paragraph (which
    may be off-screen).
    
    It is safer to use parMetrics(0), that will compute the paragraph
    metrics as needed.
    
    Fixes bug #8120.
    
    (cherry picked from commit a25b48f86cdde98bbd5f8ece06c6bf2f12ee84db)
---
 src/TextMetrics.cpp |    6 +++---
 status.23x          |    2 ++
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp
index e7bd619..5d4b88d 100644
--- a/src/TextMetrics.cpp
+++ b/src/TextMetrics.cpp
@@ -1502,14 +1502,14 @@ int TextMetrics::cursorX(CursorSlice const & sl,
 int TextMetrics::cursorY(CursorSlice const & sl, bool boundary) const
 {
        //lyxerr << "TextMetrics::cursorY: boundary: " << boundary << endl;
-       ParagraphMetrics const & pm = par_metrics_[sl.pit()];
+       ParagraphMetrics const & pm = parMetrics(sl.pit());
        if (pm.rows().empty())
                return 0;
 
        int h = 0;
-       h -= par_metrics_[0].rows()[0].ascent();
+       h -= parMetrics(0).rows()[0].ascent();
        for (pit_type pit = 0; pit < sl.pit(); ++pit) {
-               h += par_metrics_[pit].height();
+               h += parMetrics(pit).height();
        }
        int pos = sl.pos();
        if (pos && boundary)
diff --git a/status.23x b/status.23x
index b6c4427..726bcf4 100644
--- a/status.23x
+++ b/status.23x
@@ -58,6 +58,8 @@ What's new
 
 * USER INTERFACE
 
+- Fix crash with server-get-xy and tall inset (bug 8120).
+
 - Improve Undo for operations that act on several buffers (bug 10823).
 
 - Improve rendering of square roots in math editor (bug 10814).

Reply via email to