From 71f9d3600cc93e543c270a241d16f5ab2974f44b Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Sat, 9 May 2009 20:26:04 +0000 Subject: [PATCH] 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 --- src/TextMetrics.cpp | 2 +- src/insets/InsetText.cpp | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) 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); -- 2.39.2