]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
* Painter.h:
[lyx.git] / src / lyxfunc.C
index deb7d0a239374747461df04f54f7e3ced30f608a..3d249d36ca0cbd8153255e375cf2fec858732fed 100644 (file)
@@ -1022,14 +1022,24 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        break;
 
                case LFUN_LYX_QUIT:
+                       if (argument != "force") {
+                               if (!theApp->gui().closeAll())
+                                       break;
+                               lyx_view_ = 0;
+                       }
+
+                       // FIXME: this code needs to be transfered somewhere else
+                       // as lyx_view_ will most certainly be null and a same buffer
+                       // might be visible in more than one LyXView.
                        if (lyx_view_ && lyx_view_->view()->buffer()) {
                                // save cursor Position for opened files to .lyx/session
-                               LyX::ref().session().saveFilePosition(lyx_view_->buffer()->fileName(),
+                               LyX::ref().session().lastFilePos().save(lyx_view_->buffer()->fileName(),
                                        boost::tie(view()->cursor().pit(), view()->cursor().pos()) );
                                // save bookmarks to .lyx/session
                                view()->saveSavedPositions();
-                       }                       
-                       LyX::ref().quit(argument == "force");
+                       }
+
+                       LyX::ref().quit();
                        break;
 
                case LFUN_TOC_VIEW: {
@@ -1958,7 +1968,7 @@ void LyXFunc::doImport(string const & argument)
 void LyXFunc::closeBuffer()
 {
        // save current cursor position
-       LyX::ref().session().saveFilePosition(lyx_view_->buffer()->fileName(),
+       LyX::ref().session().lastFilePos().save(lyx_view_->buffer()->fileName(),
                boost::tie(view()->cursor().pit(), view()->cursor().pos()) );
        if (theBufferList().close(lyx_view_->buffer(), true) && !quitting) {
                if (theBufferList().empty()) {