commit b469c142ad579d3338fc81ab3e1c6ee7b4e270ec
Author: Jean-Marc Lasgouttes <[email protected]>
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
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs