Fix display of math hull inset in RTL context

The inversion of margin was done in the wrong way for RTL support.

(cherry picked from commit b469c142ad)
This commit is contained in:
Jean-Marc Lasgouttes 2024-05-16 14:56:28 +02:00
parent d752ba3376
commit 342a0f5438
2 changed files with 9 additions and 5 deletions

View File

@ -2001,8 +2001,14 @@ void TextMetrics::drawParagraph(PainterInfo & pi, pit_type const pit, int const
return; return;
size_t const nrows = pm.rows().size(); size_t const nrows = pm.rows().size();
// Remember left and right margin for drawing math numbers // Remember left and right margin for drawing math numbers
Changer changeleft = changeVar(pi.leftx, x + leftMargin(pit)); Changer changeleft, changeright;
Changer changeright = changeVar(pi.rightx, x + width() - rightMargin(pit)); 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. // Use fast lane in nodraw stage.
if (pi.pain.isNull()) { if (pi.pain.isNull()) {
@ -2049,9 +2055,6 @@ void TextMetrics::drawParagraph(PainterInfo & pi, pit_type const pit, int const
} }
} }
if (text_->isRTL(pit))
swap(pi.leftx, pi.rightx);
BookmarksSection::BookmarkPosList bpl = BookmarksSection::BookmarkPosList bpl =
theSession().bookmarks().bookmarksInPar(bv_->buffer().fileName(), pm.id()); theSession().bookmarks().bookmarksInPar(bv_->buffer().fileName(), pm.id());

View File

@ -41,6 +41,7 @@ What's new
* USER INTERFACE * USER INTERFACE
- fix display of equation numbers in right-to-left context.
* INTERNALS * INTERNALS