]> git.lyx.org Git - lyx.git/blobdiff - src/bufferlist.C
revert recent change to development/FORMAT (don't change history)
[lyx.git] / src / bufferlist.C
index e51779103b58657d4dfc2603d78a108140c6a78a..861bb6fb43bab197ca981a2d719775cadd28f3f5 100644 (file)
@@ -122,6 +122,15 @@ bool BufferList::quitWriteAll()
                if (!quitWriteBuffer(*it))
                        return false;
        }
+       // now, all buffers have been written sucessfully
+       // save file names to .lyx/session
+       it = bstore.begin();
+       for (; it != end; ++it) {
+               // if master/slave are both open, do not save slave since it 
+               // will be automatically loaded when the master is loaded
+               if ((*it)->getMasterBuffer() == (*it))
+                       LyX::ref().session().addLastOpenedFile((*it)->fileName());
+       }
 
        return true;
 }
@@ -164,8 +173,7 @@ bool BufferList::close(Buffer * buf, bool const ask)
 {
        BOOST_ASSERT(buf);
 
-       // FIXME: is the quitting check still necessary ?
-       if (!ask || buf->isClean() || quitting || buf->paragraphs().empty()) {
+       if (!ask || buf->isClean() || buf->paragraphs().empty()) {
                release(buf);
                return true;
        }
@@ -186,14 +194,12 @@ bool BufferList::close(Buffer * buf, bool const ask)
                if (buf->isUnnamed()) {
                        if (!writeAs(buf))
                                return false;
-               } else if (buf->save()) {
-                       LyX::ref().session().addLastFile(buf->fileName());
-               } else {
+               } else if (!menuWrite(buf))
                        return false;
-               }
-       } else if (ret == 2) {
+               else
+                       return false;
+       } else if (ret == 2)
                return false;
-       }
 
        if (buf->isUnnamed()) {
                removeAutosaveFile(buf->fileName());