Restore parent after buffer reload (#13031)

This commit is contained in:
Juergen Spitzmueller 2024-01-19 09:09:28 +01:00
parent 98eccd1adb
commit 4cfa3488e5

View File

@ -5559,12 +5559,19 @@ Buffer::ReadStatus Buffer::reload()
docstring const disp_fn = makeDisplayPath(d->filename.absFileName()); docstring const disp_fn = makeDisplayPath(d->filename.absFileName());
// clear parent. this will get reset if need be. // clear parent. this will get reset if need be.
Buffer const * oldparent = d->parent();
d->setParent(nullptr); d->setParent(nullptr);
ReadStatus const status = loadLyXFile(); ReadStatus const status = loadLyXFile();
if (status == ReadSuccess) { if (status == ReadSuccess) {
updateBuffer(); updateBuffer();
changed(true); changed(true);
updateTitles(); updateTitles();
// reset parent if this hasn't been done yet
// but only if this is still its child (e.g.,
// not after the former child has been saved as...)
if (!d->parent() && oldparent && oldparent->isFullyLoaded()
&& oldparent->isChild(this))
d->setParent(oldparent);
markClean(); markClean();
message(bformat(_("Document %1$s reloaded."), disp_fn)); message(bformat(_("Document %1$s reloaded."), disp_fn));
d->undo_.clear(); d->undo_.clear();