From: Jean-Marc Date: Mon, 20 Jul 2015 22:14:39 +0000 (+0200) Subject: Only compute string length every 30 characters X-Git-Tag: 2.2.0alpha1~408^2~1 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=25727ee5a898a5ade763a344ebac28b49df89076;p=features.git Only compute string length every 30 characters This makes paragraph rebreaking muh much faster, at least on my ancient iMac Core 2 Duo. --- diff --git a/src/Row.cpp b/src/Row.cpp index ec01d5c465..1bd11c97cd 100644 --- a/src/Row.cpp +++ b/src/Row.cpp @@ -333,11 +333,16 @@ void Row::add(pos_type const pos, char_type const c, Element e(STRING, pos, f, ch); elements_.push_back(e); } - dim_.wid -= back().dim.wid; - back().str += c; - back().endpos = pos + 1; - back().dim.wid = theFontMetrics(back().font).width(back().str); - dim_.wid += back().dim.wid; + if (back().str.length() % 30 == 0) { + dim_.wid -= back().dim.wid; + back().str += c; + back().endpos = pos + 1; + back().dim.wid = theFontMetrics(back().font).width(back().str); + dim_.wid += back().dim.wid; + } else { + back().str += c; + back().endpos = pos + 1; + } }