Переглянути джерело

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) {
     } else if (alignment == TextAlignment::CenterLeft) {
         bounding_rect.set_location({ rect.x(), rect.center().y() - (bounding_rect.height() / 2) });
         bounding_rect.set_location({ rect.x(), rect.center().y() - (bounding_rect.height() / 2) });
     } else if (alignment == TextAlignment::CenterRight) {
     } 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) {
     } else if (alignment == TextAlignment::Center) {
         bounding_rect.center_within(rect);
         bounding_rect.center_within(rect);
     } else {
     } else {