ソースを参照

Painter: Fix off-by-one in bounding rects for right-aligned text

Another instance of "Rect::right() is the last pixel *inside* the rect,
not the first pixel outside the rect" messing me up.
Andreas Kling 6 年 前
コミット
d31ddf9aaa
1 ファイル変更1 行追加1 行削除
  1. 1 1
      Libraries/LibDraw/Painter.cpp

+ 1 - 1
Libraries/LibDraw/Painter.cpp

@@ -653,7 +653,7 @@ void Painter::draw_text(const Rect& rect, const StringView& text, const Font& fo
     } else if (alignment == TextAlignment::CenterLeft) {
         bounding_rect.set_location({ rect.x(), rect.center().y() - (bounding_rect.height() / 2) });
     } else if (alignment == TextAlignment::CenterRight) {
-        bounding_rect.set_location({ rect.right() - bounding_rect.width(), rect.center().y() - (bounding_rect.height() / 2) });
+        bounding_rect.set_location({ (rect.right() + 1) - bounding_rect.width(), rect.center().y() - (bounding_rect.height() / 2) });
     } else if (alignment == TextAlignment::Center) {
         bounding_rect.center_within(rect);
     } else {