]> git.lyx.org Git - features.git/commitdiff
Restore parent after buffer reload (#13031)
authorJuergen Spitzmueller <spitz@lyx.org>
Fri, 19 Jan 2024 08:09:28 +0000 (09:09 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Fri, 19 Jan 2024 08:09:28 +0000 (09:09 +0100)
src/Buffer.cpp

index 29dfe4bfe233e877170399bda5343dab7c3728ef..de7f4d217c98b947f09a0796de4f3607ca23f525 100644 (file)
@@ -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();