]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetIPA.cpp
step 1
[lyx.git] / src / insets / InsetIPA.cpp
index 9bcb0e2b6bdc7f299fe561e615d684808bd26e8a..7363659ff754c5a87851d72050524598c054a65d 100644 (file)
@@ -63,6 +63,22 @@ void InsetIPA::write(ostream & os) const
 }
 
 
+void InsetIPA::doDispatch(Cursor & cur, FuncRequest & cmd)
+{
+       switch (cmd.action()) {
+       case LFUN_QUOTE_INSERT: {
+               FuncRequest fr(LFUN_SELF_INSERT, "\"");
+               InsetText::doDispatch(cur, fr);
+               break;
+       }
+       default:
+               InsetText::doDispatch(cur, cmd);
+               break;
+       }
+
+}
+
+
 bool InsetIPA::getStatus(Cursor & cur, FuncRequest const & cmd,
                FuncStatus & flag) const
 {
@@ -187,20 +203,26 @@ bool InsetIPA::notifyCursorLeaves(Cursor const & old, Cursor & cur)
 
 void InsetIPA::validate(LaTeXFeatures & features) const
 {
+       if (buffer_->params().useNonTeXFonts)
+               return;
        features.require("tipa");
        features.require("tipx");
 }
 
 
-void InsetIPA::latex(otexstream & os, OutputParams const & runparams) const
+void InsetIPA::latex(otexstream & os, OutputParams const & runparams_in) const
 {
+       OutputParams runparams(runparams_in);
+       runparams.inIPA = true;
        bool const multipar = (text().paragraphs().size() > 1);
-       if (multipar)
+       // fontspec knows \textipa, but not the IPA environment
+       bool const nontexfonts = buffer_->params().useNonTeXFonts;
+       if (multipar && !nontexfonts)
                os << "\\begin{IPA}\n";
        else
                os << "\\textipa{";
        InsetText::latex(os, runparams);
-       if (multipar)
+       if (multipar && !nontexfonts)
                os << "\n\\end{IPA}";
        else
                os << "}";