diff --git a/src/display_manager.py b/src/display_manager.py index 97e55723..eb5921c7 100644 --- a/src/display_manager.py +++ b/src/display_manager.py @@ -279,10 +279,14 @@ class DisplayManager: # Draw the text if isinstance(current_font, freetype.Face): - # For BDF fonts, use _draw_bdf_text - self._draw_bdf_text(text, x, y, color, current_font) + # For BDF fonts, we need to adjust the y-coordinate. + # The passed 'y' is the top of the text, but our drawing function + # expects the baseline. The 'ascender' is the distance from the + # baseline to the top of the glyphs. + baseline_y = y + (current_font.size.ascender >> 6) + self._draw_bdf_text(text, x, baseline_y, color, current_font) else: - # For TTF fonts, use PIL's text drawing + # For TTF fonts, use PIL's text drawing which expects top-left. self.draw.text((x, y), text, font=current_font, fill=color) except Exception as e: