mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 05:16:21 +00:00
If a file is saved as, reset its master if it has any, thus preventing a crash (bug 8161)
This commit is contained in:
parent
9d69d99379
commit
ab1434dce3
@ -4591,6 +4591,7 @@ bool Buffer::saveAs(FileName const & fn)
|
||||
// we need to check that the locations of child buffers
|
||||
// are still valid.
|
||||
checkChildBuffers();
|
||||
checkMasterBuffer();
|
||||
return true;
|
||||
} else {
|
||||
// save failed
|
||||
@ -4639,4 +4640,25 @@ void Buffer::checkChildBuffers()
|
||||
d->position_to_children.clear();
|
||||
}
|
||||
|
||||
|
||||
// If a child has been saved under a different name/path, it might have been
|
||||
// orphaned. Therefore the master needs to be reset (bug 8161).
|
||||
void Buffer::checkMasterBuffer()
|
||||
{
|
||||
Buffer const * const master = masterBuffer();
|
||||
if (master == this)
|
||||
return;
|
||||
|
||||
// necessary to re-register the child (bug 5873)
|
||||
// FIXME: clean up updateMacros (here, only
|
||||
// child registering is needed).
|
||||
master->updateMacros();
|
||||
// (re)set master as master buffer, but only
|
||||
// if we are a real child
|
||||
if (master->isChild(this))
|
||||
setParent(master);
|
||||
else
|
||||
setParent(0);
|
||||
}
|
||||
|
||||
} // namespace lyx
|
||||
|
@ -691,6 +691,8 @@ public:
|
||||
WordLangTuple & word_lang, docstring_list & suggestions) const;
|
||||
///
|
||||
void checkChildBuffers();
|
||||
///
|
||||
void checkMasterBuffer();
|
||||
|
||||
/// compute statistics between \p from and \p to
|
||||
/// \p from initial position
|
||||
|
Loading…
Reference in New Issue
Block a user