Fix DEPM crash within inset.

* BufferView::updateMetrics(): always clear the full text_metrics_ when doing a full update.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19919 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Abdelrazak Younes 2007-08-30 16:48:47 +00:00
parent a088c6754a
commit b45bc7944d

View File

@ -981,8 +981,6 @@ void BufferView::resize(int width, int height)
width_ = width; width_ = width;
height_ = height; height_ = height;
// The complete text metrics will be redone.
text_metrics_.clear();
updateMetrics(false); updateMetrics(false);
} }
@ -1339,7 +1337,6 @@ ViewMetricsInfo const & BufferView::viewMetricsInfo()
void BufferView::updateMetrics(bool singlepar) void BufferView::updateMetrics(bool singlepar)
{ {
Text & buftext = buffer_.text(); Text & buftext = buffer_.text();
TextMetrics & tm = textMetrics(&buftext);
pit_type size = int(buftext.paragraphs().size()); pit_type size = int(buftext.paragraphs().size());
if (anchor_ref_ > int(buftext.paragraphs().size() - 1)) { if (anchor_ref_ > int(buftext.paragraphs().size() - 1)) {
@ -1353,9 +1350,12 @@ void BufferView::updateMetrics(bool singlepar)
// Clear out paragraph metrics to avoid having invalid metrics // Clear out paragraph metrics to avoid having invalid metrics
// in the cache from paragraphs not relayouted below // in the cache from paragraphs not relayouted below
tm.clear(); // The complete text metrics will be redone.
text_metrics_.clear();
} }
TextMetrics & tm = textMetrics(&buftext);
// If the paragraph metrics has changed, we can not // If the paragraph metrics has changed, we can not
// use the singlepar optimisation. // use the singlepar optimisation.
if (singlepar if (singlepar