]> git.lyx.org Git - lyx.git/blobdiff - src/TextMetrics.cpp
GuiBox.cpp: fix this issue: horizontal box alignment is only possible without inner...
[lyx.git] / src / TextMetrics.cpp
index 22c834e32117716c31d25e95a0e932c826afd92e..675f8ee11a00ff9ae11494afa3e3f3b08c4e1580 100644 (file)
@@ -1219,10 +1219,18 @@ pos_type TextMetrics::getColumnNearX(pit_type const pit,
                return 0;
        }
 
-       // if the first character is a separator, we are in RTL
-       // text. This character will not be painted on screen
+       // This (rtl_support test) is not needed, but gives
+       // some speedup if rtl_support == false
+       bool const lastrow = lyxrc.rtl_support && row.endpos() == par.size();
+
+       // If lastrow is false, we don't need to compute
+       // the value of rtl.
+       bool const rtl = lastrow ? text_->isRTL(par) : false;
+
+       // if the first character is a separator, and we are in RTL
+       // text, this character will not be painted on screen
        // and thus we should not count it and skip to the next.
-       if (par.isSeparator(bidi.vis2log(vc)))
+       if (rtl && par.isSeparator(bidi.vis2log(vc)))
                ++vc;
 
        while (vc < end && tmpx <= x) {
@@ -1250,13 +1258,7 @@ pos_type TextMetrics::getColumnNearX(pit_type const pit,
        LASSERT(vc <= end, /**/);  // This shouldn't happen.
 
        boundary = false;
-       // This (rtl_support test) is not needed, but gives
-       // some speedup if rtl_support == false
-       bool const lastrow = lyxrc.rtl_support && row.endpos() == par.size();
 
-       // If lastrow is false, we don't need to compute
-       // the value of rtl.
-       bool const rtl = lastrow ? text_->isRTL(par) : false;
        if (lastrow &&
            ((rtl  &&  left_side && vc == row.pos() && x < tmpx - 5) ||
             (!rtl && !left_side && vc == end  && x > tmpx + 5))) {
@@ -2012,14 +2014,15 @@ int TextMetrics::leftMargin(int max_width,
                    && par.getInset(pos)->display())
                        && (!(tclass.isDefaultLayout(par.layout())
                 || tclass.isPlainLayout(par.layout()))
-               || buffer.params().paragraph_separation == BufferParams::ParagraphIndentSeparation)
+               || buffer.params().paragraph_separation 
+                               == BufferParams::ParagraphIndentSeparation)
            )
                {
-                       // use the parindent of the layout when the default indentation is used
-                       // otherwise use the indentation set in the document settings
+                       // use the parindent of the layout when the default indentation is
+                       // used otherwise use the indentation set in the document settings
                        if (buffer.params().getIndentation().asLyXCommand() == "default")
-                               l_margin += theFontMetrics(buffer.params().getFont()).signedWidth(
-                               parindent);
+                               l_margin += theFontMetrics(
+                                       buffer.params().getFont()).signedWidth(parindent);
                        else
                                l_margin += buffer.params().getIndentation().inPixels(*bv_);
                }