From: Jean-Marc Lasgouttes Date: Mon, 12 Feb 2018 16:11:09 +0000 (+0100) Subject: Use parMetrics to access the par_metrics_ map X-Git-Tag: 2.3.1~133^2~73 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=a2e1021aba81371b29bf6a61d184383cffda7f9d;p=features.git 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) --- diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp index e7bd6190e2..5d4b88d604 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 b6c4427c49..726bcf4644 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).