[LyX/master] Restore parent after buffer reload (#13031)
Juergen Spitzmueller
spitz at lyx.org
Fri Jan 19 06:42:13 UTC 2024
commit 4cfa3488e50a7be245e81c15ac7903087dc27084
Author: Juergen Spitzmueller <spitz at lyx.org>
Date: Fri Jan 19 09:09:28 2024 +0100
Restore parent after buffer reload (#13031)
---
src/Buffer.cpp | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/Buffer.cpp b/src/Buffer.cpp
index 29dfe4b..de7f4d2 100644
--- a/src/Buffer.cpp
+++ b/src/Buffer.cpp
@@ -5559,12 +5559,19 @@ Buffer::ReadStatus Buffer::reload()
docstring const disp_fn = makeDisplayPath(d->filename.absFileName());
// clear parent. this will get reset if need be.
+ Buffer const * oldparent = d->parent();
d->setParent(nullptr);
ReadStatus const status = loadLyXFile();
if (status == ReadSuccess) {
updateBuffer();
changed(true);
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();
message(bformat(_("Document %1$s reloaded."), disp_fn));
d->undo_.clear();
More information about the lyx-cvs
mailing list