commit b469c142ad579d3338fc81ab3e1c6ee7b4e270ec
Author: Jean-Marc Lasgouttes <lasgout...@lyx.org>
Date:   Thu May 16 14:56:28 2024 +0200

    Fix display of math hull inset in RTL context
    
    The inversion of margin was done in the wrong way for RTL support.
---
 src/TextMetrics.cpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp
index ce8cfe552d..fe8aa4d73a 100644
--- a/src/TextMetrics.cpp
+++ b/src/TextMetrics.cpp
@@ -2050,8 +2050,14 @@ void TextMetrics::drawParagraph(PainterInfo & pi, 
pit_type const pit, int const
        size_t const nrows = pm.rows().size();
        int const wh = bv_->workHeight();
        // Remember left and right margin for drawing math numbers
-       Changer changeleft = changeVar(pi.leftx, x + leftMargin(pit));
-       Changer changeright = changeVar(pi.rightx, x + width() - 
rightMargin(pit));
+       Changer changeleft, changeright;
+       if (text_->isRTL(pit)) {
+               changeleft = changeVar(pi.leftx, x + rightMargin(pit));
+               changeright = changeVar(pi.rightx, x + width() - 
leftMargin(pit));
+       } else {
+               changeleft = changeVar(pi.leftx, x + leftMargin(pit));
+               changeright = changeVar(pi.rightx, x + width() - 
rightMargin(pit));
+       }
 
        // Use fast lane in nodraw stage.
        if (pi.pain.isNull()) {
@@ -2100,9 +2106,6 @@ void TextMetrics::drawParagraph(PainterInfo & pi, 
pit_type const pit, int const
                }
        }
 
-       if (text_->isRTL(pit))
-               swap(pi.leftx, pi.rightx);
-
        BookmarksSection::BookmarkPosList bpl =
                
theSession().bookmarks().bookmarksInPar(bv_->buffer().fileName(), pm.id());
 
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to