]> git.lyx.org Git - features.git/commitdiff
Fix bug #7186 (Forward Search not working for Child Documents)
authorEnrico Forestieri <forenr@lyx.org>
Sat, 12 Feb 2011 20:24:09 +0000 (20:24 +0000)
committerEnrico Forestieri <forenr@lyx.org>
Sat, 12 Feb 2011 20:24:09 +0000 (20:24 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37602 a592a061-630c-0410-9148-cb99ea01b6c8

src/Buffer.cpp
src/frontends/qt4/GuiPrefs.cpp
src/frontends/qt4/GuiView.cpp

index 5831df1a61b9509583da2b069aacb10ab0c7f507..24362784d54aa94a30ffc995274158b8e2489b7a 100644 (file)
@@ -3595,6 +3595,10 @@ bool Buffer::doExport(string const & format, bool put_in_tempdir,
                ListOfBuffers::const_iterator const cen = clist.end();
                for (; cit != cen; ++cit) {
                        if (d->cloned_buffer_) {
+                               // Enable reverse search by copying back the
+                               // texrow object to the cloned buffer.
+                               // FIXME: this is not thread safe.
+                               (*cit)->d->cloned_buffer_->d->texrow = (*cit)->d->texrow;
                                (*cit)->d->cloned_buffer_->d->errorLists[error_type] = 
                                        (*cit)->d->errorLists[error_type];
                        } else
index ef322ba60da0a9c562c19989de75ce03e8ce1908..858b379b4c116e9ec9e76cc02a609ba34928b4ed 100644 (file)
@@ -377,7 +377,7 @@ PrefOutput::PrefOutput(GuiPreferences * form)
        connect(pdfCB, SIGNAL(editTextChanged(QString)),
                this, SIGNAL(changed()));
        dviCB->addItem("");
-       dviCB->addItem("xdvi -sourceposition $$n:$$t $$o");
+       dviCB->addItem("xdvi -sourceposition '$$n:\\ $$t' $$o");
        dviCB->addItem("yap -1 -s $$n$$t $$o");
        dviCB->addItem("okular --unique $$o#src:$$n$$t");
        dviCB->addItem("synctex view -i $$n:0:$$t -o $$o -x \"evince -p %{page+1} $$o\"");
index 51b0467decfadd909e1b35c2c4c6ce4d23cac719..8d514681430efcfd8fa72ca18e311b7a8b5fd441 100644 (file)
@@ -136,6 +136,11 @@ using namespace std;
 using namespace lyx::support;
 
 namespace lyx {
+
+using support::addExtension;
+using support::changeExtension;
+using support::removeExtension;
+
 namespace frontend {
 
 namespace {
@@ -3466,12 +3471,19 @@ void GuiView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
                        break;
 
                case LFUN_FORWARD_SEARCH: {
-                       FileName const path(doc_buffer->temppath());
-                       string const texname = doc_buffer->latexName();
+                       Buffer const * doc_master = doc_buffer->masterBuffer();
+                       FileName const path(doc_master->temppath());
+                       string const texname = doc_master->isChild(doc_buffer)
+                               ? DocFileName(changeExtension(
+                                       doc_buffer->absFileName(),
+                                               "tex")).mangledFileName()
+                               : doc_buffer->latexName();
+                       string const mastername =
+                               removeExtension(doc_master->latexName());
                        FileName const dviname(addName(path.absFileName(),
-                                   support::changeExtension(texname, "dvi")));
+                                       addExtension(mastername, "dvi")));
                        FileName const pdfname(addName(path.absFileName(),
-                                   support::changeExtension(texname, "pdf")));
+                                       addExtension(mastername, "pdf")));
                        if (!dviname.exists() && !pdfname.exists()) {
                                dr.setMessage(_("Please, preview the document first."));
                                break;