From 3c6ed275175d52c7ec99b47565c7167751d413de Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Mon, 5 Sep 2011 19:41:23 +0000 Subject: [PATCH] Fix #7594 for branch. ===== Original log: Fix bug reported on user list. Children included more than once in the same document could not be rendered. Problem was that we were using children_positions to deal with the included documents. That structure only includes each child once. We need to use position_to_children, instead. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@39602 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Buffer.cpp | 9 +++++---- status.20x | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) 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). -- 2.39.5