diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 06174697e5..04b379435d 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -444,12 +444,12 @@ void Buffer::clone(BufferMap & bufmap) const // math macro caches need to be rethought and simplified. // I am not sure wether we should handle Buffer cloning here or in BufferList. // Right now BufferList knows nothing about buffer clones. - Impl::BufferPositionMap::iterator it = d->children_positions.begin(); - Impl::BufferPositionMap::iterator end = d->children_positions.end(); + Impl::PositionScopeBufferMap::iterator it = d->position_to_children.begin(); + Impl::PositionScopeBufferMap::iterator end = d->position_to_children.end(); for (; it != end; ++it) { - DocIterator dit = it->second.clone(buffer_clone); + DocIterator dit = it->first.clone(buffer_clone); dit.setBuffer(buffer_clone); - Buffer * child = const_cast(it->first); + Buffer * child = const_cast(it->second.second); child->clone(bufmap); BufferMap::iterator it = bufmap.find(child); @@ -461,6 +461,7 @@ void Buffer::clone(BufferMap & bufmap) const InsetInclude * inset_inc = static_cast(inset); inset_inc->setChildBuffer(child_clone); child_clone->d->setParent(buffer_clone); + // FIXME Do we need to do this now, or can we wait until we run updateMacros()? buffer_clone->setChild(dit, child_clone); } buffer_clone->d->macro_lock = false; diff --git a/status.20x b/status.20x index d06d28f2df..7333968bf4 100644 --- a/status.20x +++ b/status.20x @@ -47,6 +47,9 @@ What's new - Fix regression where parent macros were not displayed in a viewed child (bug 7593). +- Fix regression where children included more than once are only rendered + once (bug 7594). + - Fix problem where updates to children were not seen on output of master (bug 7360).