X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXFunc.cpp;h=27f558a5fbb4cfff95810d829d61f6356ced4813;hb=608603a31d6ae4e3d08ae4e9c18a11d9e705dcf4;hp=80a9d5d06dc20b081268acbe9141392570cc9e9b;hpb=d3003c10225095fb472ec85bcbef407edd1b4cb1;p=lyx.git diff --git a/src/LyXFunc.cpp b/src/LyXFunc.cpp index 80a9d5d06d..27f558a5fb 100644 --- a/src/LyXFunc.cpp +++ b/src/LyXFunc.cpp @@ -1410,35 +1410,35 @@ void LyXFunc::dispatch(FuncRequest const & cmd) } case LFUN_BUFFER_CHILD_OPEN: { - // takes an optional argument, "|bool", at the end - // indicating whether this file is being opened automatically - // by LyX itself, in which case we will not want to switch - // buffers after opening. The default is false, so in practice - // it is used only when true. + // takes an optional argument, "|bool", at the end + // indicating whether this file is being opened automatically + // by LyX itself, in which case we will not want to switch + // buffers after opening. The default is false, so in practice + // it is used only when true. BOOST_ASSERT(lyx_view_); - int const arglength = argument.length(); + int const arglength = argument.length(); FileName filename; - bool autoOpen = false; - if (argument.substr(arglength - 5, 5) == "|true") { - autoOpen = true; - filename = makeAbsPath(argument.substr(0, arglength - 5), - lyx_view_->buffer()->filePath()); - } else if (argument.substr(arglength - 6, 6) == "|false") { - filename = makeAbsPath(argument.substr(0, arglength - 6), - lyx_view_->buffer()->filePath()); - } else filename = - makeAbsPath(argument, lyx_view_->buffer()->filePath()); + bool autoOpen = false; + if (argument.substr(arglength - 5, 5) == "|true") { + autoOpen = true; + filename = makeAbsPath(argument.substr(0, arglength - 5), + lyx_view_->buffer()->filePath()); + } else if (argument.substr(arglength - 6, 6) == "|false") { + filename = makeAbsPath(argument.substr(0, arglength - 6), + lyx_view_->buffer()->filePath()); + } else filename = + makeAbsPath(argument, lyx_view_->buffer()->filePath()); view()->saveBookmark(false); if (theBufferList().exists(filename.absFilename())) { - Buffer * buf = theBufferList().getBuffer(filename.absFilename()); - if (!autoOpen) - lyx_view_->setBuffer(buf, true); - else - buf->setParentName(lyx_view_->buffer()->fileName()); + Buffer * buf = theBufferList().getBuffer(filename.absFilename()); + if (!autoOpen) + lyx_view_->setBuffer(buf, true); + else + buf->setParentName(lyx_view_->buffer()->fileName()); } else - lyx_view_->loadLyXFile(filename, true, true, autoOpen); - - break; + lyx_view_->loadLyXFile(filename, true, true, autoOpen); + + break; } case LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR: @@ -2089,16 +2089,8 @@ void LyXFunc::closeBuffer() // goto bookmark to update bookmark pit. for (size_t i = 0; i < LyX::ref().session().bookmarks().size(); ++i) gotoBookmark(i+1, false, false); - if (theBufferList().close(lyx_view_->buffer(), true) && !quitting) { - if (theBufferList().empty()) { - // need this otherwise SEGV may occur while - // trying to set variables that don't exist - // since there's no current buffer - lyx_view_->getDialogs().hideBufferDependent(); - } else { - lyx_view_->setBuffer(theBufferList().first()); - } - } + + theBufferList().close(lyx_view_->buffer(), true); }