- Add check for converter with active synctex support to check for synchronized output for activate forward search.
}
+bool Buffer::isSyncTeXenabled() const
+{
+ bool enabled = params().output_sync;
+
+ if (!enabled)
+ for (auto const & c : theConverters()) {
+ const string dest = c.to().substr(0,3);
+ if (dest == "dvi" || dest == "pdf") {
+ const string cmd = c.command();
+ enabled |= cmd.find("--synctex=1") != string::npos;
+ if (enabled) break;
+ }
+ }
+ return enabled;
+}
+
bool Buffer::importString(string const & format, docstring const & contents, ErrorList & errorList)
{
Format const * fmt = theFormats().getFormat(format);
int readHeader(Lexer & lex);
double fontScalingFactor() const;
+ /// check for active synctex support:
+ /// - either the document has synchronize output enabled or
+ /// - there is a converter to dvi or pdf defined with synctex command line argument
+ /// this is the "expert mode", false positives are possible
+ bool isSyncTeXenabled() const;
private:
///
break;
case LFUN_FORWARD_SEARCH:
enable = !(lyxrc.forward_search_dvi.empty() && lyxrc.forward_search_pdf.empty()) &&
- doc_buffer && doc_buffer->params().output_sync;
+ doc_buffer && doc_buffer->isSyncTeXenabled();
break;
case LFUN_FILE_INSERT_PLAINTEXT: