Fix display of math hull inset in RTL context

The inversion of margin was done in the wrong way for RTL support.
This commit is contained in:
Jean-Marc Lasgouttes 2024-05-16 14:56:28 +02:00
parent 2d95f8fc16
commit b469c142ad

View File

@ -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());