commit e5f42f67d01819645f23c7348bddfc3603472139
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Fri Oct 9 16:16:13 2015 +0200

    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 d62dae7..902c62d 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

Reply via email to