From: Vincent van Ravesteijn Date: Sat, 9 May 2009 20:26:04 +0000 (+0000) Subject: Fix bug #5890: Assertion when reducing the view size. X-Git-Tag: 2.0.0~6627 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=71f9d3600cc93e543c270a241d16f5ab2974f44b;p=features.git Fix bug #5890: Assertion when reducing the view size. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29597 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp index 6e22bf7852..3baf705c02 100644 --- a/src/TextMetrics.cpp +++ b/src/TextMetrics.cpp @@ -187,7 +187,7 @@ int TextMetrics::parPosition(pit_type pit) const bool TextMetrics::metrics(MetricsInfo & mi, Dimension & dim, int min_width) { - LASSERT(mi.base.textwidth, /**/); + LASSERT(mi.base.textwidth > 0, /**/); max_width_ = mi.base.textwidth; // backup old dimension. Dimension const old_dim = dim_; diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp index 73a209b5e2..5c461242e5 100644 --- a/src/insets/InsetText.cpp +++ b/src/insets/InsetText.cpp @@ -183,6 +183,13 @@ void InsetText::metrics(MetricsInfo & mi, Dimension & dim) const // Hand font through to contained lyxtext: tm.font_.fontInfo() = mi.base.font; mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET; + + // This can happen when a layout has a left and right margin, + // and the view is made very narrow. We can't do better than + // to draw it partly out of view (bug 5890). + if (mi.base.textwidth < 1) + mi.base.textwidth = 1; + if (hasFixedWidth()) tm.metrics(mi, dim, mi.base.textwidth); else @@ -480,9 +487,9 @@ void InsetText::updateLabels(ParIterator const & it) ParIterator it2 = it; it2.forwardPos(); LASSERT(&it2.inset() == this && it2.pit() == 0, return); - if (producesOutput()) { + if (producesOutput()) buffer().updateLabels(it2); - } else { + else { DocumentClass const & tclass = buffer().masterBuffer()->params().documentClass(); Counters const savecnt = tclass.counters(); buffer().updateLabels(it2);