Found a cleaner solution for the buffer reference problem in mathed.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23445 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Abdelrazak Younes 2008-03-04 14:18:34 +00:00
parent 0320d29531
commit ed5350bae7
2 changed files with 6 additions and 7 deletions

View File

@ -696,13 +696,6 @@ bool Buffer::readFile(FileName const & filename)
if (readFile(lex, fname) != success)
return false;
// FIXME: there are insets that don't set the buffer reference
// (InsetMathHull at least) so wet explicitely set the buffer in all insets.
InsetIterator it = inset_iterator_begin(inset());
InsetIterator end = inset_iterator_end(inset());
for (; it != end; ++it)
it->setBuffer(*this);
return true;
}

View File

@ -210,6 +210,12 @@ InsetMathHull & InsetMathHull::operator=(InsetMathHull const & other)
void InsetMathHull::setBuffer(Buffer & buffer)
{
buffer_ = &buffer;
for (idx_type i = 0, n = nargs(); i != n; ++i) {
MathData & data = cell(i);
for (size_t j = 0; j != data.size(); ++j)
data[j].nucleus()->setBuffer(buffer);
}
for (size_t i = 0; i != label_.size(); ++i) {
if (label_[i])
label_[i]->setBuffer(buffer);