diff --git a/src/insets/InsetInfo.cpp b/src/insets/InsetInfo.cpp index 46d656c817..f2d3b93ad8 100644 --- a/src/insets/InsetInfo.cpp +++ b/src/insets/InsetInfo.cpp @@ -467,7 +467,7 @@ string InsetInfoParams::infoType() const InsetInfo::InsetInfo(Buffer * buf, string const & info) - : InsetCollapsible(buf), initialized_(false) + : InsetCollapsible(buf), initialized_(false), dirty_(true) { params_.type = InsetInfoParams::UNKNOWN_INFO; params_.force_ltr = false; @@ -779,15 +779,19 @@ void InsetInfo::metrics(MetricsInfo & mi, Dimension & dim) const { const_cast(this)->build(); InsetCollapsible::metrics(mi, dim); + dirty_ = false; } void InsetInfo::draw(PainterInfo & pi, int x, int y) const { + if (dirty_) + return; Changer chg = changeVar(lyxrc.mark_foreign_language, false); InsetCollapsible::draw(pi, x, y); } + void InsetInfo::updateBuffer(ParIterator const & it, UpdateType utype, bool const deleted) { @@ -1235,6 +1239,8 @@ void InsetInfo::build() } } + // indicate that metrics are not usable anymore + dirty_ = true; // Just to do something with that string LYXERR(Debug::INFO, "info inset text: " << gui); } diff --git a/src/insets/InsetInfo.h b/src/insets/InsetInfo.h index 3531b41681..17d60e291d 100644 --- a/src/insets/InsetInfo.h +++ b/src/insets/InsetInfo.h @@ -236,6 +236,8 @@ private: void build(); /// bool initialized_; + /// true when metrics Row object should not be used + mutable bool dirty_; /// InsetInfoParams params_; ///