]> git.lyx.org Git - features.git/blobdiff - src/lyx_main.C
My six month cleanup crusade is now paying off: LyX has now multiple windows support!
[features.git] / src / lyx_main.C
index 874f10d8c024190f4e455627d17feeb33230cbfd..a36bc40c0657b8ede8d62fb4b1c37ca56ec847e6 100644 (file)
@@ -491,6 +491,28 @@ int LyX::execBatchCommands(int & argc, char * argv[],
 
 
 void LyX::restoreGuiSession(vector<string> const & files)
+{
+       LyXView * view = newLyXView();
+
+       // load files
+       for_each(files.begin(), files.end(),
+               bind(&LyXView::loadLyXFile, view, _1, true));
+
+       // if a file is specified, I assume that user wants to edit *that* file
+       if (files.empty() && lyxrc.load_session) {
+               vector<string> const & lastopened = pimpl_->session_->lastOpenedFiles();
+               // do not add to the lastfile list since these files are restored from
+               // last seesion, and should be already there (regular files), or should
+               // not be added at all (help files).
+               for_each(lastopened.begin(), lastopened.end(),
+                       bind(&LyXView::loadLyXFile, view, _1, false));
+       }
+       // clear this list to save a few bytes of RAM
+       pimpl_->session_->clearLastOpenedFiles();
+}
+
+
+LyXView * LyX::newLyXView()
 {
        // determine windows size and position, from lyxrc and/or session
        // initial geometry
@@ -513,6 +535,7 @@ void LyX::restoreGuiSession(vector<string> const & files)
                if (session().loadSessionInfo("WindowIsMaximized") == "yes")
                        maximize = true;
        }
+
        // if user wants to restore window position
        int posx = -1;
        int posy = -1;
@@ -533,24 +556,9 @@ void LyX::restoreGuiSession(vector<string> const & files)
        LyXView * view = &pimpl_->application_->createView(width, height, posx, posy, maximize);
        ref().addLyXView(view);
 
-       // load files
-       for_each(files.begin(), files.end(),
-               bind(&LyXView::loadLyXFile, view, _1, true));
-
-       // if a file is specified, I assume that user wants to edit *that* file
-       if (files.empty() && lyxrc.load_session) {
-               vector<string> const & lastopened = pimpl_->session_->lastOpenedFiles();
-               // do not add to the lastfile list since these files are restored from
-               // last seesion, and should be already there (regular files), or should
-               // not be added at all (help files).
-               for_each(lastopened.begin(), lastopened.end(),
-                       bind(&LyXView::loadLyXFile, view, _1, false));
-       }
-       // clear this list to save a few bytes of RAM
-       pimpl_->session_->clearLastOpenedFiles();
+       return view;
 }
 
-
 /*
 Signals and Windows
 ===================