From 4cfa3488e50a7be245e81c15ac7903087dc27084 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Fri, 19 Jan 2024 09:09:28 +0100 Subject: [PATCH] Restore parent after buffer reload (#13031) --- src/Buffer.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 29dfe4bfe2..de7f4d217c 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();