From: Jean-Marc Lasgouttes Date: Fri, 9 Oct 2015 14:16:13 +0000 (+0200) Subject: Fix display of perenthesis in Hebrew documents X-Git-Tag: 2.2.0alpha1~255 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=e5f42f67d01819645f23c7348bddfc3603472139;p=features.git Fix display of perenthesis in Hebrew documents This was a regression from 2.1.x. I failed to copy the horrible hack that was present for the special case of () in Hebrew. There is a real need for someone who understands RTL language stuff to fix this. Currently () are wrong in .lyx files IMO. We should not have to swap them for display. --- diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp index d62dae76d4..902c62d7e3 100644 --- a/src/TextMetrics.cpp +++ b/src/TextMetrics.cpp @@ -28,6 +28,7 @@ #include "CutAndPaste.h" #include "HSpace.h" #include "InsetList.h" +#include "Language.h" #include "Layout.h" #include "LyXRC.h" #include "MetricsInfo.h" @@ -819,8 +820,17 @@ void TextMetrics::breakRow(Row & row, int const right_margin, pit_type const pit } else if (c == '\t') row.addSpace(i, theFontMetrics(*fi).width(from_ascii(" ")), *fi, par.lookupChange(i)); - else + else { + // FIXME: please someone fix the Hebrew/Arabic parenthesis mess! + // see also Paragraph::getUChar. + if (fi->language()->lang() == "hebrew") { + if (c == '(') + c = ')'; + else if (c == ')') + c = '('; + } row.add(i, c, *fi, par.lookupChange(i)); + } // add inline completion width // draw logically behind the previous character