Author: spitz Date: Fri Mar 9 12:14:39 2012 New Revision: 40893 URL: http://www.lyx.org/trac/changeset/40893
Log: Consider specifics for TIPAs T3 font encoding and allow insertion of straight quote (stress shortcut) to IPA inset. Modified: lyx-devel/trunk/src/Paragraph.cpp lyx-devel/trunk/src/insets/InsetIPA.cpp lyx-devel/trunk/src/insets/InsetIPA.h Modified: lyx-devel/trunk/src/Paragraph.cpp ============================================================================== --- lyx-devel/trunk/src/Paragraph.cpp Fri Mar 9 11:18:59 2012 (r40892) +++ lyx-devel/trunk/src/Paragraph.cpp Fri Mar 9 12:14:39 2012 (r40893) @@ -345,6 +345,12 @@ pos_type i, unsigned int & column); /// + bool latexSpecialT3( + char_type const c, + otexstream & os, + pos_type i, + unsigned int & column); + /// bool latexSpecialTypewriter( char_type const c, otexstream & os, @@ -1169,17 +1175,21 @@ return; } + // TIPA uses its own T3 encoding + if (runparams.inIPA && latexSpecialT3(c, os, i, column)) + return; // If T1 font encoding is used, use the special // characters it provides. // NOTE: some languages reset the font encoding // internally - if (!running_font.language()->internalFontEncoding() + if (!runparams.inIPA && !running_font.language()->internalFontEncoding() && lyxrc.fontenc == "T1" && latexSpecialT1(c, os, i, column)) return; // \tt font needs special treatment - if (running_font.fontInfo().family() == TYPEWRITER_FAMILY - && latexSpecialTypewriter(c, os, i, column)) + if (!runparams.inIPA + && running_font.fontInfo().family() == TYPEWRITER_FAMILY + && latexSpecialTypewriter(c, os, i, column)) return; // Otherwise, we use what LaTeX provides us. @@ -1331,6 +1341,23 @@ } +bool Paragraph::Private::latexSpecialT3(char_type const c, otexstream & os, + pos_type i, unsigned int & column) +{ + switch (c) { + case '*': + case '[': + case ']': + case '|': + case '\"': + os.put(c); + return true; + default: + return false; + } +} + + bool Paragraph::Private::latexSpecialTypewriter(char_type const c, otexstream & os, pos_type i, unsigned int & column) { Modified: lyx-devel/trunk/src/insets/InsetIPA.cpp ============================================================================== --- lyx-devel/trunk/src/insets/InsetIPA.cpp Fri Mar 9 11:18:59 2012 (r40892) +++ lyx-devel/trunk/src/insets/InsetIPA.cpp Fri Mar 9 12:14:39 2012 (r40893) @@ -63,6 +63,22 @@ } +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 { Modified: lyx-devel/trunk/src/insets/InsetIPA.h ============================================================================== --- lyx-devel/trunk/src/insets/InsetIPA.h Fri Mar 9 11:18:59 2012 (r40892) +++ lyx-devel/trunk/src/insets/InsetIPA.h Fri Mar 9 12:14:39 2012 (r40893) @@ -56,6 +56,8 @@ void draw(PainterInfo & pi, int x, int y) const; /// + void doDispatch(Cursor & cur, FuncRequest & cmd); + /// bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const; void addPreview(DocIterator const & inset_pos,