From fd867eafdc67bdca7bcf42b7abbf55ee390d762b Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Fri, 23 Mar 2007 09:18:07 +0000 Subject: [PATCH] Workaround for bug 3040 * src/rowpainter.C (RowPainter::paintChars): Paint hebrew characters one at a time git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17519 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/rowpainter.C | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/rowpainter.C b/src/rowpainter.C index 294f8e5e4b..6277343a57 100644 --- a/src/rowpainter.C +++ b/src/rowpainter.C @@ -335,14 +335,31 @@ void RowPainter::paintChars(pos_type & vpos, LyXFont const & font, if (!isPrintableNonspace(c)) break; + if (hebrew) + break; + + /* FIXME: these checks are irrelevant, since 'arabic' and + * 'hebrew' alone are already going to trigger a break. + * The encodings used by isComposeChar_arabic and + * isComposeChar_hebrew are incorrect (probably iso8859-8 and + * iso8859-6), they also have to be adapted to Unicode. + * However, this should not be removed completely, because + * if an alternative solution is found which allows grouping + * of arabic and hebrew characters, then these breaks may have + * to be re-applied. + * See also http://thread.gmane.org/gmane.editors.lyx.devel/79740 + if (arabic && Encodings::isComposeChar_arabic(c)) break; if (hebrew && Encodings::isComposeChar_hebrew(c)) break; + */ - if (arabic) + if (arabic) { c = par_.transformChar(c, pos); + break; + } str.push_back(c); }